4
我使用XmlSerializer進行WCF服務(在我的服務的情況下有這個原因)。但最近我碰到的問題:我無法找到一個簡單的方法,使所需的參考類型屬性,即使是在XSD看起來像這樣的定義:XmlSerializer - 所需的元素
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:string"/>
的這個代替:
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string"/>
下面是屬性的代碼:
[XmlElement]
public string Name { get; set; }
我知道,與DataContractSerializer的我能做到這一點:
[DataMember(IsRequired = true)]
public string Name { get; set; }
我將得到所需的模式。
任何想法如何使用XmlSerializer屬性獲得類似於IsRequired's的功能?
謝謝。
你是對的,它確實在xsd中將minOccurs設置爲1,但它也將nillable =「true」屬性添加到xs:element。我想要的是保證沒有這個元素的客戶端消息不會被服務接受,所以我不必檢查相應的屬性爲null。 – 2012-02-01 07:11:19
我不認爲你可以得到默認的xml序列化程序來強制元素,沒有額外的屬性。它會是一個選項來實現IXmlSerializable,所以你可以完全自定義生成的XML? – 2012-02-01 10:54:53