从WCF服务生成2.0 Web服务代理时指定的propertyNameField

时间:2020-03-06 14:43:17  来源:igfitidea点击:

我已经从Visual Studio 2008创建了一个Web参考(添加Web参考),奇怪的是,我需要为我要提交的所有字段将propertyNameFieldSpecified设置为true。失败的话,值不会传递回WCF服务。

我在几个地方都读到它已在Visual Studio的RTM版本中修复。为什么它仍然发生?

我的数据合同全部有效,除了属性和列表外,其他都没有。有任何想法吗?

解决方案

我看到这发生在VB.NET中,该值具有可为空的值,但是Chowever具有"正确"的代码。

也许会有一个想法是从Cproject引用服务。然后从VB.NET代码中引用该项目。

我正在使用C#。我怀疑这与自动属性有关,但没有运气。

这是一个示例类:

[DataContract]
public class BrowserBase : IBrowser
{

    [DataMember]
    public BrowserType BrowserType { get; set; }

    [DataMember]
    public IList<ResolutionBase> Resolutions { get; set; }

}

XSD.EXE工具是罪魁祸首。当我们执行"添加Web引用"时,Visual Studio将为所有引用的类型生成类。为此,它使用xsd.exe工具。网上有xsd.exe的替代品

即:http://www.bware.biz/DotNet/Development/CodeXS/Article/Article_web.htm

但是我还没有看到如何替换"添加Web参考"的行为。

这是一个完整的答案:http://blogs.msdn.com/eugeneos/archive/2007/02/05/solving-the-disappearing-data-issue-when-using-add-web-reference-or-wsdl- exe-with-wcf-services.aspx