我正在为我的项目添加服务引用并选择“内部”访问选项。在15个Web服务中,有3个是顽固的,并且自动生成的Reference.cs中的大多数类都是公开的(即使我选择“内部”)
我已经浏览了有关此问题的Web References中的类,并且没有任何内容真正跳出来,因为有问题的那些与正在运行的那些之间存在重大差异。
有谁知道这个问题的常见原因?例如可能导致此问题的类的Xml属性还是什么?
答案 0 :(得分:4)
问题正是如此。 XmlSerializer无法序列化内部类型。 Microsoft here在标题为“生成的类设置的访问级别无效”一节中简要提及了此限制。
在Configure中设置生成的类的访问级别选项 “内部”或“朋友”的“服务引用”对话框可能并不总是如此 工作。即使选项似乎在对话框中设置, 生成的支持类将以访问级别生成 公共
这是某些类型的已知限制,例如使用XmlSerializer序列化的类型。
据我所知,对于自动生成的服务引用,这个问题并没有真正可行的解决方法。但是,DataContractSerializer不受此限制的限制,因此可以在其他方案中使用。
你必须与微软合作。假设尚未将请求的解决方案拒绝为“无法修复”。