【问题标题】:svcutil wsdl Error: The type name: on the property:"Name" of type:"System.CodeDom.CodeNamespace" is not a valid language-independent type namesvcutil wsdl 错误:类型名称:在属性上:“名称”的类型:“System.CodeDom.CodeNamespace”不是有效的独立于语言的类型名称
【发布时间】:2019-08-31 08:27:45
【问题描述】:

当我使用服务模型元数据工具时,我收到以下错误

svcutil wsdl 错误:类型名称:关于属性:“名称” 类型:“System.CodeDom.CodeNamespace”不是有效的 与语言无关的类型名称。

当我执行以下行时

svcutil my.wsdl /n:*,"www.abc.com/x" /out:my.cs

命名空间“/x”是错误的来源,但我无法修复它。我可以将源文档中的命名空间更改为“www.abc.com”,它可以正常工作,没有错误,但这不是解决方案,因为我不拥有源 wsdl,也无法将其更改为我喜欢的。

【问题讨论】:

  • 命名空间设置不应该类似于/n:http://www.example.com/x,MyNamespace.X吗?
  • 是的,没错,命名空间的 csv

标签: c# visual-studio soap soapui svcutil.exe


【解决方案1】:

正如DavidG 所指出的,www.abc.com/x 不是有效的命名空间

ServiceModel Metadata Utility Tool (Svcutil.exe)

指定从 WSDL 或 XML Schema targetNamespace 到 CLR 的映射 命名空间。对 targetNamespace 使用“*”映射所有 targetNamespace 没有到该 CLR 命名空间的显式映射。

确保消息合约名称不与 操作名称,您应该使用 :: 限定类型引用, 或确保名称是唯一的。

默认值:派生自架构文档的目标命名空间 数据合同。默认命名空间用于所有其他生成的 类型。

短格式:/n 注意:当生成与 XmlSerializer 一起使用的类型时, 仅支持单个命名空间映射。所有生成的类型都会 要么在默认命名空间中,要么在“*”指定的命名空间中。

【讨论】:

  • svcutil Import.wsdl /n:*,"import.www.abc.com" /out:Import.cs 这终于奏效了。我没有意识到第二个 /n 参数是目标命名空间,我以为它是源命名空间的 wsdl。
猜你喜欢
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多