向WCF服务添加XML属性
本文关键字:XML 属性 添加 服务 WCF | 更新日期: 2023-09-27 18:15:43
我有一个这样的类,
[DataContract]
public class FruitCrate
{
[XmlAttribute]
public int NumberOfFruits;
[DataMember(Name = "Cats")]
public List<Cats2009> Cats;
}
[DataContract]
public class Cats2009
{
[DataMember]
public string Name;
}
现在,即使没有猫在水果箱,我仍然希望它返回结果为,
<FruitCrate NumberOfFruits="1">
<cats MomName="BigBadCat" />
</FruitCrate>
[DataContract]
public class FruitCrate
{
[XmlAttribute]
public int NumberOfFruits;
[DataMember(Name = "Cats")]
public CatContainer CatContainer;
}
[DataContract]
public class Cats2009
{
[DataMember]
public string Name;
}
[DataContract]
public class CatContainer
{
[XmlAttribute]
public string MomName;
[DataMember]
public List<Cats2009> Cats;
}
试试这个。我没有太多的经验与XmlAttribute,所以我不太知道它是如何工作的,但这应该做。请注意,您总是必须声明一个CatContainer,但它不必包含任何cat。
我自己做了一些研究,如果你想要xmlatattributes,你不能使用DataContract。您必须实现isserializable或使用. net XmlSerializer。
你也可以添加一个方法并用属性[OnSerialized]/[OnDeserialized]标记它。这将允许您更改"Cats"的内容,如果它为null或空为"BigBadCat"。http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute%28v=vs.110%29.aspx