Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF客户端的默认属性值_C#_Wcf_Default Value - Fatal编程技术网

C# WCF客户端的默认属性值

C# WCF客户端的默认属性值,c#,wcf,default-value,C#,Wcf,Default Value,我有以下情况: 独立类库中有一个复杂对象,某些对象属性具有默认值 该对象是WCF公共方法的参数 我在WCF的客户机上实例化这个对象,将值分配给属性,并将其传递给WCF公共方法 服务端的WCF方法接受它并执行任何操作 我的问题是,当我在客户机属性上实例化对象时,默认值不可使用,我必须在代码中再次分配它们 我在这里查看了过去关于该主题的问题,没有发现任何与我的场景相关的内容。虽然在客户端上,我的对象不是从类库本身实例化的,而是从服务引用实例化的,比如WCFServiceReference.MyCla

我有以下情况:

独立类库中有一个复杂对象,某些对象属性具有默认值

该对象是WCF公共方法的参数

我在WCF的客户机上实例化这个对象,将值分配给属性,并将其传递给WCF公共方法

服务端的WCF方法接受它并执行任何操作

我的问题是,当我在客户机属性上实例化对象时,默认值不可使用,我必须在代码中再次分配它们

我在这里查看了过去关于该主题的问题,没有发现任何与我的场景相关的内容。虽然在客户端上,我的对象不是从类库本身实例化的,而是从服务引用实例化的,比如WCFServiceReference.MyClass(否则WCF方法不能接受它作为参数),但我并没有参数的数据约定

我真的希望所有这些默认值都能在客户端上使用

我将感谢任何帮助

谢谢

使用您的方法——使用服务代理类——客户端只获取标记为
DataMember
的属性。这就是为什么您分配的默认值不会出现在客户机中——该代码未序列化,因此不会随WCF服务一起发送


如果要共享代码,可以通过在单独的类库中声明
DataContract
类来实现。让WCF服务和客户端都引用该库。

您好,dbaseman,谢谢您的回答。我已经在一个单独的图书馆上课了。用DataMember装饰类成员对我没有帮助,但我想我现在明白了原因。在阅读您的帖子时,我已经了解了如何解决这个问题——我刚刚创建了一个WCF服务的公共方法,它返回我需要的对象,并在该方法中预设了默认值。我对你的答案投了更高的票,因为它促使我有这样的见解。@Anvar没问题,希望它能有所帮助!