ホストA、B、およびCの3つのケースがあります。ホストCは定期的にホストBにハートビートメッセージを送信し、ホストBは同様のハートビートメッセージをAに送信します。 Cで送信されたパケットの情報といくつかの追加情報。明らかに、これを可能にするために、AはBにサービスを公開し、BはCにサービスを公開する。異なるサービス間のオブジェクトの中継
両方に渡される直列化可能なクラスはNodeInfo
と呼ばれる。基本的にデータメンバーの単純なコレクションであるNodeInfo
は、AとBの両方のサービスのサービス定義によって参照されます。
ここにキッカーがあります:Bが受け取ったデータ契約のタイプはB.ServiceForC.NodeInfo
です。しかし、BがAにリレーする必要があるタイプは、タイプA.ServiceForB.NodeInfo
です。だから私がしなければならないのは、Bに反復コードをたくさん書くことで、インバウンドNodeInfo
のデータを新しく作成されたアウトバウンドNodeInfo
のものにコピーすることです。
私の質問は、これを扱う巧妙な方法はありますか? B.ServiceForC.NodeInfo
オブジェクトをA.ServiceForB.NodeInfo
オブジェクトにキャストする方法はありますか?すべてのオブジェクトを再作成してデータをコピーする必要はありませんか?彼らは遺伝的な意味で関連していないので、それは可能ではないようですが、わかりません。
私は多くの狩りをしましたが、役に立たないものは見つけられません。どんな提案も、たとえそれが決定的な "あなたが幸運だ"と言っても、助けになるだろう。ありがとう。