私が取り組んでいるプロジェクトでは、WCF と SignalR を組み合わせて使用しています。
[OperationContract]
WCF サービスには、 (パラメーターまたは戻り値の型のいずれかとして)の一部であるため、問題なく引き継がれる多数の DTO があります。
ただし、 SignalR を介したサーバーからのブロードキャストの戻り値の型としてのみ使用される2 つのクラス (MachineStatusDto
および) があります。DeviceStatusDto
machine.On<MachineStatusDto>("Update", m => UpdateMachineRecord(m)); //On client side
もちろん、これらの型を使用する WCF サービスでメソッドを作成することもできますが、特定の型を含めるように WCF サービスに通知する方法が必要だと思います[OperationContract]
。
編集:
最後に、[ServiceKnownType(typeof(SomeDto))]
WCF ServiceContract インターフェイスに追加するだけで、サービス コントラクトで明示的に使用されているクラスに加えて、これらのクラスを送信することがわかります。そのような単純な。