XmlSerializer - 必需的元素

Mak*_*nov 5 .net wcf xsd xmlserializer

我正在使用XmlSerializer进行WCF服务(在我的服务中有这样的理由).但是最近我遇到了这个问题:我找不到一个简单的方法来创建一个引用类型属性,即让它在XSD中的定义如下所示:

<xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:string"/>
Run Code Online (Sandbox Code Playgroud)

而不是这个:

<xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string"/>
Run Code Online (Sandbox Code Playgroud)

这是属性的代码:

[XmlElement]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

我知道使用DataContractSerializer我可以这样做:

[DataMember(IsRequired = true)]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

我会得到所需的架构.

任何想法如何使用XmlSerializer属性获得类似于IsRequired的功能?

谢谢.

Rob*_*ine 0

使用

[XmlElement(IsNullable=true)]
Run Code Online (Sandbox Code Playgroud)

即使为空,也应该强制对成员进行序列化,使其 minOccurs 为 1(我认为 - 尚未检查)。