【问题标题】:WCF web service WSDL contains private fields for referenced classesWCF Web 服务 WSDL 包含引用类的私有字段
【发布时间】:2013-10-15 12:52:20
【问题描述】:

我有一个 WCF Web 服务,它带有一个返回复杂数据类型的方法。此数据类型是在我没有源代码的程序集引用中定义的。

此数据类型具有用于访问它们的私有字段和公共属性,但我的服务会生成一个只有私有字段可见的 WSDL。例如,如果程序集引用中的类如下所示:

class ResponseStructure {
    private XmlElement bodyField;
    public XmlElemente Body { /*getters and setters for bodyField */ }
}

当我将此服务添加为任何应用程序中的服务引用并尝试使用ResponseStructure 时,我不仅可以访问bodyField(我什至无法从服务中看到,因为该字段是私有的) ,但我实际的Body 属性甚至没有出现。

如果我尝试链接 WCF 服务,也会发生同样的事情,即让 service1 将所有请求传递给 service2,然后将响应传回。 service2 的数据类型,在 service1 的 WSDL 中引用时,只包含私有字段。

知道我无法访问参考程序集或 service2 的源代码,对此我能做些什么?

【问题讨论】:

    标签: c# wcf web-services wsdl


    【解决方案1】:

    请勿在您负责的服务合同中使用您无法控制的类。使用单独的类并从ResponseStructure 类的属性中复制。

    【讨论】:

    • 问题是我正在为客户开发中介服务设置,其中客户和服务是我的,但不是中介。而且我不直接访问中介,只是一些用于类定义和文档的参考程序集。因此,我正在尝试匹配类型,以便我可以合理确定地直接开发和测试客户端服务,一旦中介进入,一切仍然可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多