【发布时间】:2018-09-21 11:18:41
【问题描述】:
我引用了一个在 WSDL 文件中定义的 Web 服务。 WSDL 文件使用序列,这些序列定义了元素的特定顺序。在我的reference.cs文件中,正确采用了这个顺序,例如
public class name {
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string firstname {
get; set;
}
}
如何获取类名中成员名字的顺序值?
示例 WSDL 文件:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://webaddress.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="WSDLService" targetNamespace="http://webaddress.com/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webaddress.com/" elementFormDefault="unqualified" targetNamespace="http://webaddress.com/" version="1.0">
<xs:complexType name="name">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
</wsdl:definitions>
【问题讨论】:
-
你需要使用序列化吗?你能用 Xml Linq 来解析吗?
-
好吧,我创建了一个类
name的实例myName,它有一个成员myName.firstname。我需要知道那个成员的顺序。将每个成员与其在解析的 XML 文件中的出现进行匹配是很麻烦的。如果这是唯一的解决方案,我知道该怎么做。 -
您能否发布一个 Xml 示例以便我更好地理解这个问题?我通常喜欢使用字典,因此字典的键是名称,值是 List
. -
我添加了一个示例性的 WSDL 文件。该文件会自动解析为 C# 文件
reference.cs,其中包含所有可以访问的类定义。sequence元素导致XmlElementAttributeorder= 0 代表名字,1 代表姓氏。所以实际上,order = 0 和 order = 1 并没有包含在 WSDL 文件中。