3

.asmx ファイルから生成された WSDL で asp.net が要素を生成する方法を変更する方法はありますか? 具体的には、すべての要素 minoccurs="0" をマークしているようで、minoccurs="1" (別名必須フィールド) にしたい要素がいくつかあります。

これらの 1 つは Web サービスへの引数です (例: foo(arg1, arg2) で、arg2 を WSDL で minoccurs="1" として生成する必要があります)。もう 1 つは、arg1 に対応するクラス内の特定のフィールドです。WSDL の自動生成をやめて、「コントラクトファースト」のアプローチを取る必要がありますか?

4

3 に答える 3

7

XmlElement(IsNullable = true)属性が仕事をすると思います:

using System.Xml.Serialization;

[WebMethod]
public string MyService([XmlElement(IsNullable = true)] string arg)
{
  return "1";
}

EDIT【VB版】

Imports System.Xml.Serialization

Public Function MyService(<XmlElement(IsNullable:=True)> ByVal arg As String) As String
  Return ("1")
End Function
于 2008-10-09T20:50:42.323 に答える
2

XMLElement(IsNullable = true)を使用すると、minOccurs = 1が生成されますが、WSDLでもnillable = "true"が生成されるため、望ましくありません。

于 2009-04-07T20:46:05.210 に答える