【发布时间】:2010-09-27 22:32:34
【问题描述】:
我正在使用 wsdl.exe 将 WSDL 文件和 Types.xsd 文件转换为 C# 文件。 wsdl 文件指定可选变量(minOccurs="0" maxOccurs="1"),生成的.NET 类型通过创建两个字段来处理这个问题——一个用于变量(例如status),另一个用于让您知道它是否已指定(statusSpecified)。
有没有办法使用wsdl 工具只创建一个Nullable 字段(即如果不为空,则指定)? (如果有帮助,我想我可以将 wsdl 文件更改为包含 nillable="true" 元素。)
是否有其他更好的工具可以从 WSDL 生成 .NET 类型?我使用的是 .NET 4,因此如果生成的类型利用了 Nullable 类型等功能,那将会很有用。
注意:我刚刚意识到我正在使用 .NET 2 中的 wsdl 工具,并且较新的项目应该使用 WCF 来处理这些东西。关于 WCF 获得我想要的方式的任何指针?
关于 WCF,this article 向我指出了使用 svcutil 工具的方向(它已经在我的 PATH 中,所以我可以从带有 wsdl 和 xsd 文件的文件夹中的命令行运行它,就像这样:svcutil *.wsdl *.xsd /language:C#)。不幸的是,使用 Nullable 类型而不是 xSpecified 变量,svcutil 似乎并没有做得更好。
【问题讨论】: