【发布时间】:2009-10-21 17:02:33
【问题描述】:
我正在使用 WCF 在 C# 中进行一些 wsdl 和客户端优先的开发(wsdl 和客户端已经存在,我正在构建服务器端),但我遇到了一个奇怪的问题。我使用 wsdl.exe 从我的 .wsdl 生成合同,我能够构建它并将 WCF 服务作为 Windows 服务托管。
但是,我从 http://localhost/Service?wsdl 获得的 wsdl 公开了私有字段而不是公共属性(例如:而不是 OsType 我得到了 m_OsTypeField,这是与公共 OsType 属性关联的私有变量。)
以下是存在此问题的类之一的属性:
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://xxxxxxx.com/")]
我完全被难住了,因为 .NET XML 序列化程序应该忽略任何私有成员。关于为什么会发生这种情况的任何想法?
【问题讨论】: