WCF Web服务WSDL包含引用类的私有字段

时间:2013-10-08 14:25:15

标签: c# wcf web-services wsdl

我有一个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的源代码,我能做些什么呢?

1 个答案:

答案 0 :(得分:0)

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