有没有办法管理asmx服务中序列元素的“ maxOccurs”属性?

时间:2019-08-08 10:38:13

标签: c# wsdl asmx

我正在尝试在我的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" />

0 个答案:

没有答案