使用WSDL(XML模式)C#.NET生成Web服务引用问题(C#.NET Generating w

2019-09-28 19:27发布

我使用VS2010和使用“添加服务引用”功能,从我的WSDL生成客户端类。 我有我的元素,这是在WSDL定义如下一个问题:

<xs:simpleType name="NumberType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="ONE" /> 
        <xs:enumeration value="TWO" /> 
        <xs:enumeration value="THREE" /> 
    </xs:restriction>
</xs:simpleType>

此类型在我的元素像这样的一个使用:

<xs:element name="NumberTypes">
    <xs:simpleType>
        <xs:list itemType="tns:NumberType" /> 
    </xs:simpleType>
</xs:element>

的问题是,VS是这个特定的元素转换为字符串类型,当它应该是枚举。 所以它转换为字符串NumberTypes具有get方法返回numberTypesField也字符串类型。

我认为这个问题是关系到我的模式NumberTypes元素使用XS的事实:列表中,以“项目类型”属性。 如果我更改为XS:与类型=元素“TNS:NumberType”属性代替则生成枚举因为它应该是。

那么,如何能够与XS的统计工作:清单? 为什么不能正确转换摆在首位?

谢谢你的帮助。

Answer 1:

我没有太多的运气得到的xs:列表正确序列化。 相反,我只允许在同一个节点的多个实例,以及.NET知道如何把它变成一个“名单”或“阵列”正确。

<xs:element minOccurs="0" maxOccurs="unbounded" name="NumberTypes">
    ...
</xs:element>


文章来源: C#.NET Generating web service reference using WSDL (from XML schema) problem