gpt4 book ai didi

.net - 如何控制.NET DataContract序列化,使其使用XML属性而不是元素?

转载 作者:行者123 更新时间:2023-12-03 14:31:06 24 4
gpt4 key购买 nike

如果我有一个标记为DataContract的类,并在其上标记了DataMember属性,则可以轻松地将其序列化为XML,但是它将创建如下输出:

<Person>
<Name>John Smith</Name>
<Email>john.smith@acme.com</Email>
<Phone>123-123-1234</Phone>
</Person>


我更喜欢属性,例如...

<Person Name="John Smith" Email="john.smith@acme.com" Phone="123-123-1234" />


DataMember属性允许我控制名称和顺序,但不能控制它是作为元素还是属性序列化。我环顾四周,发现了 DataContractFormatIXmlSerializable,但我希望有一个更简单的解决方案。

最简单的方法是什么?

最佳答案

您不能使用DataContractSerializer执行此操作;如果需要属性,则需要使用XmlSerializer。使用DataContractSerializer类,允许使用XML规范的限制性更强的子集,该子集可以提高性能,并改善已发布服务的互操作性,但可以使您对XML格式的控制更少。

如果您使用的是WCF服务,请查看XmlSerializerFormatAttribute,它允许您使用XmlSerializer进行序列化。

关于.net - 如何控制.NET DataContract序列化,使其使用XML属性而不是元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com