это, вероятно, только некоторая концептуальная проблема, но я не могу найти идеальное решение.
Я хотел бы создать клиентское приложение Silverlight, которое использует WCF для управления сторонним приложением через какой-либо самопишущий веб-сервис. Если имеется более одного клиента Silverlight, все клиенты должны быть синхронизированы, то есть изменения параметров от одного клиента должны распространяться на все клиенты.
Я установил очень простой графический интерфейс Silverlight, который управляет параметрами, которые передаются на сервер (класс наследует 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 с описанием изменения параметров), пересылает этот самый пакет всем клиентам, кроме того, от которого был получен пакет.
Клиент получает пакет, но теперь я не уверен, каков наилучший способ установить свойство внутри. Если я использую «Высота» (см. Выше), новое сообщение об изменении будет сгенерировано и отправлено всем другим клиентам a.s.o.
Возможно, я мог бы использовать само поле данных (frameworkElement.Height) или функцию - но я не уверен, возникнут ли позже проблемы с привязкой данных. Также я не хочу просто копировать части свойств кода, чтобы предотвратить ошибки с избыточным кодом.
Так что бы вы порекомендовали?
Спасибо!