您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

DataContract XML序列化和XML属性

DataContract XML序列化和XML属性

这可以实现,但是您必须通过将[XmlSerializerFormat]属性应用于DataContract 来覆盖认的序列化程序。尽管可以做到,但它的性能不如认的序列化程序,因此请谨慎使用。

以下类结构将为您提供您所追求的结果:

using ...
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Xml.Serialization;

[DataContract]
[XmlSerializerFormat]
public class root
{
   public distance distance=new distance();
}

[DataContract]
public class distance
{
  [DataMember, XmlAttribute]
  public string units="m";

  [DataMember, XmlText]
  public int value=1000;
}

您可以使用以下代码对此进行测试:

root mc = new root();
XmlSerializer ser = new XmlSerializer(typeof(root));
StringWriter sw = new StringWriter();
ser.Serialize(sw, mc);
Console.WriteLine(sw.ToString());
Console.ReadKey();

输出将是:

<?xml version="1.0" encoding="utf-16"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <distance units="m">1000</distance>
</root>
其他 2022/1/1 18:15:12 有341人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶