我正在尝试在我的asmx Web服务响应中找到数组的“ maxOccurs”属性。
我知道没有.NET标准的方法来管理它,但是可以通过自定义属性和IWsdlExportExtension在WCF(svc)服务中完成。
我现在所拥有的像这样
服务:
[WebService ( Namespace = "%namespace%" )]
[WebServiceBinding ( ConformsTo = WsiProfiles.BasicProfile1_1 )]
public class MyAPI : System.Web.Services.WebService
WebMethod:
[WebMethod]
public MyWebMethodResponse MyWebMethod ( ... )
返回类型为:
[Serializable]
public class MyWebMethodResponse
{
public MyWebMethodResult [] Result;
...
}
此代码生成以下WSDL:
<s:element name="MyWebMethodResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MyWebMethodResult" type="tns:MyWebMethodResponse" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="MyWebMethodResponse">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Result" type="tns:ArrayOfMyWebMethodResult" />
...
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfMyWebMethodResult">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="MyWebMethodResult" nillable="true" type="tns:MyWebMethodResult" />
</s:sequence>
</s:complexType>
我想将序列元素的“ maxOccurs”属性更改为例如100:
<s:element minOccurs="0" maxOccurs="100" name="MyWebMethodResult" nillable="true" type="tns:MyWebMethodResult" />