簡體   English   中英

C#中的同一對象上有多個XML系列化

[英]multiple XML serilizations on same object in C#

我有潛在客戶和聯絡人課程。 我需要在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(可序列化)類型的Prospect&Contact類,我可以實現2種diff格式的序列化XML嗎? 我需要做什么? 我應該能夠在兩種格式之間轉換。 我不想添加新的數據對象集來實現2種格式。 如果我已經編寫了xml自定義seriliazer,那么在所有這些選項中最好的選擇是什么。

您必須為兩個不同的序列化編寫一個自定義的序列化程序。 如果只想在一個類中序列化所有類,則可以編寫一個通用的序列化類。 為此,可以使用System.Xml.Serilization命名空間中的XmlSerializer類。

樣例代碼:

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

有關更多信息和示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM