7
我試着在網上看這件事,但所有的WSDL例子似乎沒有真正解釋,如果我要紀念的東西如WSDL或者int基本類型串...WSDL,枚舉和C#:它仍然低迷
基本上,我試圖使我的WSDL,以便我可以代表一個枚舉。我有一個C#的枚舉心中已經是我想匹配起來,以...
public enum MyEnum {
Item1 = 0,
Item2 = 1,
Item3 = 2,
SpecialItem = 99
}
我不知道我的WSDL應該是什麼樣子?我想,這是一個二,但即使如此,我「M不是100%肯定...
<wsdl:types>
<xsd:schema targetNamespace="http://www.mysite.com/MyApp"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xsd:simpleType name="MyEnum">
<xsd:restriction base="xsd:int">
<xsd:enumeration value="0" />
<xsd:enumeration value="1" />
<xsd:enumeration value="2" />
<xsd:enumeration value="99" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
</wsdl:types>
OR
<wsdl:types>
<xsd:schema targetNamespace="http://www.mysite.com/MyApp"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xsd:simpleType name="MyEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Item1" />
<xsd:enumeration value="Item2" />
<xsd:enumeration value="Item3" />
<xsd:enumeration value="SpecialItem" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
</wsdl:types>
它是如何知道我要SpecialItem是99?或者它不關心它是如何實現的?基本上,當我創建響應消息時,是否只需將MyEnum添加到該消息中,並將其序列化爲不存儲枚舉的基本int值,而是存儲字符串名稱,以便另一端可以通過名稱接收它的基值?那有意義嗎? – 2010-08-30 14:17:25
串行器實際上並不關心。只要確保將值設置爲MyEnum類型,而不是整數。您還需要始終確保MyEnum枚舉的服務器端和客戶端定義是相同的,否則您會得到不理想的結果。 – code4life 2010-08-30 15:28:44
所以基本上它會序列化名稱(即「SpecialItem」),它並不關心分配了什麼SpecialItem ...但爲了我自己的清晰度,我應該在客戶機和服務器上分配它們兩個都是99?如果我在客戶端分配了100個服務器,而在服務器上分配了99個,假設我沒有在他們自己的單獨編程中考慮這個問題,它會搞砸嗎? – 2010-08-31 15:14:58