6


1

追加のフィールド/変数ではなく、WSDLからNullableフィールド/変数を作成する方法

WSDLファイルとTypes.xsdファイルをC#ファイルに変換するためにwsdl.exeを使用しています。 wsdlファイルはオプションの変数( minOccurs =" 0 "maxOccurs =" 1 ")を指定し、生成された.NETタイプは2つのフィールドを作成してこれを処理します。 status)および指定されているかどうかを通知するもの(` statusSpecified`)。

「Nullable」であるフィールドを1つだけ作成するために「wsdl」ツールを使用する方法はありますか(つまり、 nullでない場合、指定されていますか?) (それが役立つ場合は、wsdlファイルを変更して、 `nillable =" true "`要素を含めることができると思います。)

WSDLから.NETタイプを生成する別の優れたツールはありますか? 私は.NET 4を使用しているため、生成された型がNullable型などの機能を利用した場合に役立ちます。

NOTE I just realized that I am using the wsdl tool from .NET 2 and that 新しいプロジェクトでは、このようなことにWCFを使用する必要があります。 私が欲しいものを手に入れるためのWCFの方法に関するポインタはありますか?

WCFについては、http://blogs.msdn.com/b/dotnetinterop/archive/2008/09/24/wsdl-first-development-with-wcf.aspx [この記事]で、 svcutilを使用する方向が示されました。 `ツール(既に私のPATHにあったので、次のようにwsdlおよびxsdファイルを含むフォルダーのコマンドラインから実行できました: svcutil * .wsdl * .xsd / language:C# `)。 残念ながら、svcutilは `xSpecified`変数の代わりにNullable型を使用した場合、それ以上の改善は見られません。

1 Answer


0


いいえ、xsdスキーマを変更しない限り。 xsdについてこの記事を読む

`minOccurs =" 0 "`と `nillable =" true "`の要素がある場合、xSpecifiedフィールドが生成されます。

private System.Nullable x;

private bool xSpecified;

フィールドをNULL可能にしたい場合、xsdの要素には `minOccurs =" 1 "`と `nillable =" true "`が必要です。

private System.Nullable x;

nullableとSpecifiedの違い:

  • フィールドがNULL可能の場合、フィールドはNULLであってもシリアル化されます。 ``

  • 指定されたフィールドがfalseの場合。 その場合、フィールドはシリアル化されません。

それが役に立てば幸い :)