.wsdl ファイルと svcutil.exe を使用して、関連する .cs ファイルを生成します。生成された .cs ファイルは次のようになります。
public partial class mytargettype {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 0)]
[System.Xml.Serialization.XmlArrayAttribute()]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string[] prop1;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 1)]
[System.Xml.Serialization.XmlArrayAttribute()]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string[] prop1;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 2)]
[System.Xml.Serialization.XmlArrayAttribute()]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string[] prop3;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 3)]
[System.Xml.Serialization.XmlArrayAttribute()]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public System.Nullable<int>[] prop4;
}
.wsdl ファイルの関連部分は次のとおりです。
<wsdl:message name="mytargettype">
<wsdl:part name="prop1" type="ns1:stringArray" />
<wsdl:part name="prop2" type="ns1:stringArray" />
<wsdl:part name="prop3" type="ns1:stringArray" />
<wsdl:part name="prop4" type="ns1:intArray" />
</wsdl:message>
したがって、生成された .cs ファイルは次のようにする必要があります。
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 2)]
[System.Xml.Serialization.XmlArrayAttribute(Namespace = "http://jaxb.dev.java.net/array")]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string[] prop3;
XmlArrayAttribute
ご覧のとおり、 have Namespace パラメーターが必要です。
.cs ファイルが上記のようになる原因となった .WSDL ファイルに追加する必要がある変更は何ですか。