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