如何防止在WCF客户端中生成“指定”属性?

前端之家收集整理的这篇文章主要介绍了如何防止在WCF客户端中生成“指定”属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个.NET 3.5 WCF服务与VS2008构建.

我在Silverlight中有两个WCF客户机来使用这些服务.使用“添加服务引用”生成客户端.我正在使用Silverlight 4.

其中一个代理是通过每个属性的“指定”属性生成的.这是我的服务方法的’message-in’类

// properties are generated for each of these fields
    private long customerProfileIdField;        
    private bool customerProfileIdFieldSpecified;        
    private bool testEnvField;        
    private bool testEnvFieldSpecified;

现在我的其他服务(仍然使用Silverlight客户端)不生成指定的属性.

现在我不在乎“SOA的良知”.我只想摆脱这些死亡财产,因为在我正在做的事情上,我绝对讨厌他们.

两个服务之间必须有所区别 – 但是我不希望将它们分开,以便找出差异.

之前的similar question有答案’you cant do it‘ – 这绝对不是真的,因为我有 – 我只是不知道我做了什么不同.

编辑:我现在处于将我的Silverlight 4代理重新生成到我的3.5 WCF服务(所有在同一本地机器上)的情况,有时我得到“指定”属性,有时我不会.我不再认为(就像我原来怀疑的那样),这仅仅是由于某些端点配置或服务级别[属性].在消息本身中的某些触发器导致指定生成(或不).可能涉及许多因素,或者可能是非常简单的.

解决方法

请尝试在您的WCF服务中声明属性

[DataMember(Isrequired=true)]
public bool testEnvField { get; set; }

Isrequired = true将否定对testEnvFieldSpecified属性的需要

猜你在找的Silverlight相关文章