我有以下情况:
有一个复杂的对象驻留在独立的类库中,一些对象属性具有默认值。
该对象是WCF公共方法的参数。
我在WCF的客户端上实例化此对象,为属性赋值并将其传递给WCF公共方法。
服务端的WCF方法接受它并做任何事情。
我的问题是,当我在客户端属性上实例化对象时,我无法使用默认值,我必须再次在代码中分配它们。
我在这里查看了有关该主题的过去问题,但没有找到与我的方案相关的任何内容。虽然在客户端上我的对象不是从类库本身而是从服务引用实例化的,例如WCFServiceReference.MyClass(否则WCF方法不能接受它作为参数),我实际上没有参数的数据契约。
我真的希望在客户端上提供所有这些默认值。
我将不胜感激。
谢谢!
答案 0 :(得分:2)
使用您的方法 - 使用服务代理类 - 客户端只获取标有DataMember
的属性。这就是为什么您分配的默认值不会出现在客户端中 - 该代码未被序列化,因此不会与WCF服务一起发送。
如果要共享代码,可以通过在单独的类库中声明DataContract
类来实现。让WCF服务和客户端都引用该库。