これはおそらく概念的な問題にすぎませんが、理想的な解決策を見つけることができないようです。
WCF を使用して、独自に作成した Web サービスを介してサード パーティ アプリケーションを制御する Silverlight クライアント アプリケーションを作成したいと考えています。複数の Silverlight クライアントがある場合は、すべてのクライアントを同期する必要があります。つまり、1 つのクライアントからのパラメーターの変更をすべてのクライアントに伝達する必要があります。
サーバーに渡されるパラメーターを操作する非常に単純な Silverlight GUI をセットアップしました (クラスは INotifyPropertyChanged を継承します)。
public double Height
{
get { return frameworkElement.Height; }
set
{
if (frameworkElement.Height != value)
{
frameworkElement.Height = value;
OnPropertyChanged("Height", value);
}
}
}
OnPropertyChanged は、データの転送を担当します。WCF サービス (duplex net.tcp) はすべてのクライアントのリストを維持し、データ パケット (パラメーター変更の説明を含む XElement) を受信するとすぐに、このパケットをすべてのクライアントに転送しますが、パケットの受信元はクライアントだけです。
クライアントはパッケージを受け取りますが、内部でプロパティを設定する最善の方法は何かわかりません。「高さ」(上記参照) を使用すると、新しい変更メッセージが生成され、他のすべてのクライアントに送信されます。
おそらく、データ フィールド (frameworkElement.Height) 自体または関数を使用できますが、後でデータ バインディングで問題が発生するかどうかはわかりません。また、冗長なコードによるバグを防ぐために、コード プロパティの一部を単純にコピーしたくありません。
それで、あなたは何をお勧めしますか?
ありがとう!