2

我正在向我的项目添加服务引用并选择“内部”访问选项。在 15 个 Web 服务中,有 3 个是顽固的,并且自动生成的 Reference.cs 中的大多数类都以 Public 的形式出现(即使我选择了“内部”)

我已经在 Web References 中完成了我的课程,遇到了这个问题,并没有真正跳出作为有问题的那些和正在工作的那些之间的主要区别。

有谁知道这个问题的常见原因?例如可能导致此问题的类的 Xml 属性或其他什么?

4

1 回答 1

4

问题正是如此。XmlSerializer 无法序列化内部类型。Microsoft在标题为“生成的类设置的访问级别无效”的部分中简要提到了此限制。

将“配置服务引用”对话框中的“生成的类的访问级别”选项设置为“内部”或“朋友”可能并不总是有效。尽管该选项似乎已在对话框中设置,但生成的支持类将使用 Public 访问级别生成。

这是某些类型的已知限制,例如使用 XmlSerializer 序列化的类型。

据我所知,关于自动生成的服务引用,对于这个问题并没有真正可以接受的解决方法。但是,DataContractSerializer 不受此限制,因此可以在其他场景中使用。

您必须与 Microsoft 合作。假设还没有请求的解决方案被拒绝为“不会修复”。

于 2013-10-16T16:25:13.973 回答