クライアント側
私のクライアントは、次のコールバック コントラクトを取得しました。
[ServiceContract]
interface IEvent
{
[OperationContract(IsOneWay = true)]
void OnEvent(string serverName, string changeType, List<myObject> myObjects);
}
次のようにIEventを実装するクラスを取得しました。
class myClass : IEvent{
public void OnEvent(string serverName, string changeType, List<myObject> myObjects)
{
MessageBox.Show(@"Event Called: " + changeType + @" occured at: " + serverName + @" got " + myObjects.Count + " myObjects!");
}
}
サーバ側
私のサーバーは次のパブリッシング コードを取得しました。
methodInfo.Invoke(client, new object[] {serverName, changeType, myObjects});
問題
methodInfo.InvokeをmyObjects = new List<myobject>(){}
使用すると、サーバーが methodinfo.invoke を使用して mbox が表示されたときに myClass.OnEvent が呼び出されます。
しかし
サーバーがmethodinfo.invokeを使用し、mboxが表示されない場合、送信しようとするmyObjects = new List<myobject>(){new MyDerivedObject()}
と機能しません。つまり、myClass.OnEventは呼び出されません。
サーバーとクライアントの両方に、myObject と MyDerivedObject の両方を持つ myObject DLL への参照が含まれています。 MyDerivedObject はもちろん myObject から派生しています。
助けてください