xml檔案的序列化 和反序列化

2021-05-23 05:12:52 字數 1413 閱讀 1024

最近在做乙個專案中用到了一些分布式的東西 需要進行資料互動 資料互動使用xml檔案 單獨的使用xml檔案 進行組成和解析式比較麻煩的 我們可以先寫實體 然後序列化為乙個xml檔案傳送 接收資料時 我們可以反序列化 將乙個xml檔案反序列化為乙個實體.

實體的定義:

[serializable]

public class header

首先 需要[serializable]標示 保證被序列化,剩下的和我們平時寫的實體沒什麼區別 唯一的是要在屬性上面加上   [xmlelement] 表明這是乙個節點

實體的定義:

[serializable]

public class agentorder

如果需要在乙個節點中定義屬性 我們可以在屬性上面標示    [xmlattribute]  如果在該節點下面還有節點 我們可以使用最後一行的寫法

[xmltext]

public string ticketcode;

當然 還有這樣的寫法 標示屬性的內容是寫在外面的

最後 是最關鍵的關於序列化 和反序列化的工具類:

public class xmlutil

xmlserializernamespaces xmlns = new xmlserializernamespaces();

xmlns.add(string.empty, string.empty);

xmlserializer formatter = new xmlserializer(obj.gettype());

memorystream stream = new memorystream();

utf8encoding utf8 = new utf8encoding(false);

xmltextwriter writer = new xmltextwriter(stream, utf8);

string xml;

tryfinally

return xml;

}///

///類反序列化

///

///

///

///

public static object dexmlserialization(type type, string xml)

else if (xml == "")

xmlserializer formatter = new xmlserializer(type);

stringreader reader = new stringreader(xml);

xmltextreader xreader = new xmltextreader(reader);

object obj;

trycatch (exception ex)

finally

return obj;

}

Xml序列化和反序列化

1.xmlserializer 類 該類用一種高度鬆散耦合的方式提供序列化服務。你的類不需要繼承特別的基類,而且它們也不需要實現特別的介面。相反,你只需在你的類或者這些類的公共域以及讀 寫屬性裡加上自定義的特性。xmlserializer 通過反射機制讀取這些特性並用它們將你的類和類成員對映到 xm...

XML序列化和反序列化

閱讀目錄 回到頂部 由於.net framework針對xml提供了很多api,這些api根據不同的使用場景實現了不同層次的封裝,比如,我們可以直接使用xmltextreader xmldocument xpath來取數xml中的資料,也可以使用linq to xml或者反序列化的方法從xml中讀取...

XML序列化和反序列化

在談xml序列化之前,我們先來說說序列化。為什麼要做序列化和反序列化?net程式執行時,物件都駐留在記憶體中 記憶體中的物件如果需要傳遞給其他系統使用 或者在關機時需要儲存下來以便下次再次啟動程式使用就需要序列化和反序列化。序列化名詞解釋 序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相...