【问题标题】:multiple XML serilizations on same object in C#C# 中同一对象的多个 XML 序列化
【发布时间】:2014-04-02 22:39:24
【问题描述】:

我有 Prospect 和 contact 课程。我需要以 2 种差异格式在 2 个差异位置使用序列化前景。第一种格式是使用 XML 序列化的 API 方法实现的。对于第二个,我必须显示编辑器的前景,它有不同的模式。所有属性都显示为独立的元素,例如下面的 XML。

格式#1

    <prospect>
    <ID>1</ID>
    <REPNAME>TEST</REPNAME>
    <contact> 
        <FNAME>TEST-FNAME</FNAME>
        <LNAME>TEST-LNAME</LNAME>
    </contact>
</prospect>

格式#2

    <prospect>
    <Elemant Name="ID" value="1" />
    <Element Name="REPNAME" value="TEST" />
    <contact>
        <Element Name="FNAME" value="TEST-FNAME" />
        <Element Name="LNAME" value="TEST-LNAME" />
    </contact>
</prospect>

[XmlElement(Prospect)]
public class prospect 
{
   private string id, repName;
   private contact c;


     [xmlElement(PID)]
     public string ID {}

     [xmlElement(RepresentName)]
     public string REPNAME {}
}

[XmlElement(Contact)]
public contact Con
{
     private string fname,lname;
     [xmlElement(FirstName)]
     public string FNAME {}

     [xmlElement(LastName)]
     public string LNAME {}
}

我的问题是 - 通过添加 Element (seializable) 类型的 Prospect & Contact 类,我可以实现序列化 XML 的 2 种差异格式吗?我需要做什么?我应该能够在两种格式之间进行转换。我不想添加新的数据对象集来实现 2 种格式。如果我编写了一个 xml 自定义序列化器,那么在所有这些选项中最好的选择是什么。

【问题讨论】:

    标签: c# xml xslt serialization xml-serialization


    【解决方案1】:

    您必须为两种不同的序列化编写自定义序列化程序。如果您只想在一个类中序列化所有类,则可以编写一个通用序列化类。为此,您可以使用 System.Xml.Serilization 命名空间中的 XmlSerializer 类。

    示例代码:

    XmlSerializer serializer = new XmlSerializer(typeof(T)); serializer.Serialize(writer, obj);
    

    更多信息和示例:

    http://csharpexamples.com/c-generic-xml-serilization/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多