В моем последнем проекте я хочу отправлять пользовательские данные в виде объекта с помощью WCF. Причина этого в том, что мне не придется обновлять каждый клиент, когда вводится новый класс данных. Однако, когда я пытаюсь отправить эти данные, они никогда не поступают на сторону клиента.
Чтобы привести краткий пример: Пользовательский класс:
[DataContract]
public class MyData
{
[DataMember]
public string Name { get ;set; }
[DataMember]
public id Value { get; set; }
public MyData(string name, id value)
{
this.Name = name;
this.Value = value;
}
}
Когда я хочу отправить это клиенту, я использую:
object obj = new MyData("test",1);
service.SendDataToClient(obj);
Клиент никогда не получает это событие от службы, когда я отправляю его как объект. Однако, когда я отправляю его как MyData вместо объекта, он работает как надо. Как я могу отправить это как объект?
1 ответ
Если вы хотите отправить пользовательские данные, проще всего использовать XElement
вместо объекта. Другой подход заключается в определении всех возможных передаваемых типов с помощью ServicKnownTypeAttribute
или создании универсального преобразователя (в таком случае вы должны совместно использовать сборку контракта между клиентом и службой). Прочтите эту замечательную статью.
Похожие вопросы
Новые вопросы
wcf
Windows Communication Foundation является частью .NET Framework, которая предоставляет унифицированную модель программирования для быстрого создания сервис-ориентированных приложений.