使用WCF将自定义数据作为对象发送

时间:2011-03-25 14:49:38

标签: wcf object

在我的最新项目中,我希望使用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 个答案:

答案 0 :(得分:1)

如果您想发送自定义数据,那么简单的方法就是使用XElement而不是对象。另一种方法是通过ServicKnownTypeAttribute定义所有可能的转移类型或创建通用解析器(在这种情况下,您必须在客户端和服务之间共享合同汇编)。检查this great article