【发布时间】:2010-01-12 02:00:20
【问题描述】:
我有两个使用 VS2008 构建的 .NET 3.5 WCF 服务。
我在 Silverlight 中有两个 WCF 客户端来使用这些服务。客户端是使用“添加服务参考”生成的。我正在使用 Silverlight 4。
其中一个代理是使用每个属性的Specified 属性生成的。这是我的服务方法的“消息输入”类:
// properties are generated for each of these fields
private long customerProfileIdField;
private bool customerProfileIdFieldSpecified;
private bool testEnvField;
private bool testEnvFieldSpecified;
现在我的其他服务(仍然使用 Silverlight 客户端)不会生成 Specified 属性。
现在我不关心“良好 SOA 的原则”。我只是想摆脱这些该死的属性,因为在我正在做的事情的背景下,我绝对讨厌它们。
这两种服务之间肯定存在一些差异 - 但我不想为了找出差异而将它们完全分开。
similar question 之前的答案是“you cant do it”——这绝对不是真的,因为我知道了——我只是不知道我做了什么不同。
编辑:我现在的情况是,我将 Silverlight 4 代理重新生成到我的 3.5 WCF 服务(都在同一台 localhost 机器上),有时我得到“指定”属性,有时我没有。我不再认为(正如我最初怀疑的那样)这仅仅是由于某些端点配置或服务级别 [属性]。消息本身中有某些触发器会导致生成(或不生成)Specified。可能涉及很多因素,也可能很简单。
【问题讨论】:
-
我实际上有 3 个服务没有创建指定的属性。只有第四个可以!
-
将
[XMLSerializerFormat]添加到您服务的属性中:选中此answer
标签: wcf silverlight wcf-proxy