控制为ASP.NET Web服务生成的WSDL中的类型定义中的“minOccurs”,“maxOccurs”和“use”属性?

时间:2011-04-18 17:43:06

标签: c# asp.net xml-serialization asmx

是否有任何方法可以控制元素定义的minOccursmaxOccurs属性,或属性定义的use属性,为WSDL生成的ASP.NET Web服务?

我知道可以使用自定义XML序列化(即,使每个类实现IXmlSerializable并具有XmlSchemaProviderAttribute属性)来执行此操作,但这将非常耗时,尤其是考虑到此Web服务定义了许多类型和操作。

public class TestA
{
    public int Field1;    // minOccurs="1" maxOccurs="1" (good)
    public string Field2; // minOccurs="0" maxOccurs="1" (not good)
                          // I would like minOccurs to be "1" as well
}

public class TestB
{
    [XmlAttribute()] public int Field1;    // use="required" (good)
    [XmlAttribute()] public string Field2; // no use attribute (not good)
                                           // I need use="required"
}

2 个答案:

答案 0 :(得分:3)

抱歉,没有办法做到这一点。

答案 1 :(得分:1)

尝试使用minOccurs

[XmlElementAttribute(IsNullable = true)] public int Field2;