【问题标题】:Service Reference auto-generated classes in Reference.cs not being generated as InternalReference.cs 中的服务参考自动生成的类未生成为内部
【发布时间】:2013-09-13 06:22:55
【问题描述】:
我正在向我的项目添加服务引用并选择“内部”访问选项。在 15 个 Web 服务中,有 3 个是顽固的,并且自动生成的 Reference.cs 中的大多数类都以 Public 的形式出现(即使我选择了“内部”)
我在 Web References 中的课程中遇到了这个问题,并没有发现真正出现问题的课程和正常工作的课程之间的主要区别。
有人知道这个问题的常见原因吗?例如可能导致此问题的类的 Xml 属性或其他什么?
【问题讨论】:
标签:
c#
wcf
visual-studio-2012
asmx
service-reference
【解决方案1】:
问题正是如此。 XmlSerializer 无法序列化内部类型。 Microsoft here 在标题为“生成的类设置的访问级别无效”的部分中简要提到了此限制。
在配置中设置生成类的访问级别选项
内部或朋友的服务引用对话框可能并不总是
工作。尽管该选项似乎已在对话框中设置,但
生成的支持类将以访问级别生成
公开。
这是某些类型的已知限制,例如使用 XmlSerializer 序列化的类型。
据我所知,就自动生成的服务引用而言,对于这个问题并没有真正可以接受的解决方法。但是,DataContractSerializer 不受此限制,因此可以在其他场景中使用。
您必须与 Microsoft 合作。假设还没有一个请求的解决方案被拒绝为“不会修复”。