2011-08-03 11 views
0

最近、WCFサービスを使用して非同期タスクを処理するSilverlight Webプロジェクトを継承しました。私は最近、新機能を追加しました。基本的にはすでに存在していた機能のコピーを基本的にコピーしていますが、この新しい機能は壊れています。非同期メソッドが呼び出されると、引数の1つが渡されないように見えます。代わりに、呼び出されたメソッドではnullになります。ここでBeginInvoke引数がサービスでnullになる

は、サービスを呼び出す方法です:

public IAsyncResult BeginAssignTrucks(OutageGroupSafe outageGroup, List<Truck> trucksArrived, List<Truck> trucksRacked, AsyncCallback callback, object asyncState) 
{ 
    return BeginInvoke("AssignTrucks", 
     new object[] { outageGroup, trucksArrived, trucksRacked }, 
     callback, 
     asyncState); 
} 

OutageGroupSafeは、カスタムタイプです。私はまたタイプList<Truck>の2つのオブジェクトを渡していることがわかります。

それでは、プログラムの流れは、最終的にWebサービスへの、そして私は尋ねたAssignTrucks方法を乗り越える:

public OperationBase AssignTrucks(OutageGroupSafe outage, List<Truck> trucksArrived, List<Truck> trucksRacked) 
{ 
    // there is stuff here but it really doesn't matter what it is for the purposes of this question 
} 

を私はその関数にブレークポイントを設定した場合、私は、パラメータoutageがnullであることを確認他の関数で渡されたパラメータはそうではありませんでした。さらに、2つのListは完璧です。私はこの呼び出しのために私のコードを何度も同様の呼び出しに対して何度もチェックしています。と思われます。他の方法では問題のないタイプOutageGroupSafeのオブジェクトを送信できます。問題のある新しいものだけです。 タイプがであってもそれは問題ではありません。代わりにintを渡すと、まだ壊れています。

リストはありませんが、私のオブジェクトはどのようにサービスに行く途中で食べられるのですか?

答えて

0

エラーをスローする代わりに黙って失敗した型の不一致があったはずです。私はすべて私の議論をintに変更しました。本当にばかな;この日のほとんどを無駄にしました。

0

DataContractsとして注釈されたタイプ(OutageGroupSafeおよびTruck)がありますか?関連メンバーはデータメンバーとして注釈を付けましたか?

+0

ええ、彼らはすでに動作する他の方法で使用されています。 'OutageGroupSafe'を単に' int'に変更したとしても、それはまだ機能しません(0になります)。 –

関連する問題