【问题标题】:Web services: method cannot be reflected exceptionWeb 服务:方法无法反映异常
【发布时间】:2012-03-06 19:51:52
【问题描述】:

在尝试创建服务实例时,我得到了一个

“方法无法反映”

异常。深入挖掘内部异常会发现:

“类型 'WebServiceClient.com.compamy.string1' 和 'WebServiceClient.com.company.string' 都使用 XML 类型名称, “字符串”,来自命名空间“http://www.w3.org/2001/XMLSchema”。使用 XML 属性来指定一个唯一的 XML 名称和/或命名空间 类型。”

这该死的东西想从我这里得到什么?是VS2010自动生成的代码……我为什么要摆弄它?

这里有两种类型:

[GeneratedCode( "System.Xml", "4.0.30319.233" )]
[Serializable]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")]
[XmlRoot("FileName", Namespace = "http://company.com/api3/Content/Download/", IsNullable = true)]
public partial class string1 : SoapHeader

[GeneratedCode("System.Xml", "4.0.30319.233" )]
[Serializable]
[DebuggerStepThrougt]
[DesignerCategory("code")]
[XmlTypeAttribute(Namespace = "http://www.w3.org/2001/XMLSchema")]
[XmlRootAttribute("SessionKey", Namespace = "ns", IsNullable = true)]
public partial class @string : SoapHeader

【问题讨论】:

  • 为什么不把它命名为StringHeader : SoapHeader

标签: .net web-services asmx


【解决方案1】:

我找到了一个解决方案,但我无法解释它为什么起作用。 我只是从所有方法中删除了所有类型映射属性,并且不再出现错误。

删除的行:

[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")]

如果有人能解释一下,我将不胜感激!

【讨论】:

  • 你有什么解决方案来解释为什么会发生这种情况吗?我也有同样的问题,但使用的是 JSON。
  • 当我从 C# 客户端调用用 java 编写的 web 服务(不确定这是否重要)时,我遇到了同样的问题,还删除了类型映射属性并且它起作用了!真的不明白为什么!
  • 您只是通过重申错误来说明为什么它不起作用,您可以在属性中看到名称空间不同的原因。期望对象的命名空间期望字符串类型,或者至少在序列化时节点将是“字符串”。我的类型和错误都与您的命名空间相似。我曾尝试像您一样使用“w3”发送我的xml,然后使用可用的soap库,当我引用wsdl所在的api的url时它终于起作用了......如果您使用wsdl来获取您的架构也许试一试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多