ho provato a cercare questo in su in linea, ma tutti gli esempi WSDL sembrano non proprio spiegare se devo segnare cose come stringa BaseType nel WSDL o int ...WSDL, enumerazioni e C#: E 'ancora oscuro
Fondamentalmente, sto cercando di creare il mio WSDL in modo che possa rappresentare un'enumerazione. Ho un C# Enum in mente già che voglio abbinare fino a ...
public enum MyEnum {
Item1 = 0,
Item2 = 1,
Item3 = 2,
SpecialItem = 99
}
io non sono sicuro di come il mio WSDL dovrebbe apparire ... Immagino che sia uno dei due, ma anche allora io non sto sicuro al 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>
O
<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>
Come fa a sapere che voglio SpecialItem per essere 99? O non importa come sia effettivamente implementato? Fondamentalmente quando creo un messaggio di risposta, aggiungo semplicemente MyEnum e lo serializza in modo che non memorizzi il valore int base dell'enum, ma piuttosto il nome stringa in modo che l'altra estremità possa riceverlo per nome invece del valore base? Ha senso? –
Il serializzatore in realtà non interessa. Assicurati solo di impostare i valori sul tipo MyEnum, non su un intero. Inoltre, devi sempre assicurarti che le tue definizioni lato server e lato client per l'enumerazione MyEnum siano identiche, altrimenti otterrai risultati indesiderati. – code4life
Quindi in pratica serializza il nome (ad esempio "SpecialItem") e non gli interessa quale SpecialItem è assegnato ... ma, per mia chiarezza, dovrei assegnare entrambi i 99 su Client e Server? Sarebbe un pasticcio se l'avessi assegnato 100 sul client e 99 sul server, supponendo che non lo tenessi conto nella loro programmazione separata? –