用.NET框架實現序列化
序列化是將一個物件儲存到儲存介質上或者將物件進行轉換使之能夠在網路上傳送的行為。在一個物件被序列化之後,你會想要將它反序列化,也就是將資料重新轉換為可用的物件的行為。這種型別的功能被用在一個物件必須被從一個上下文封送到另一個上下文的時候,例如當物件跨越App域的時候。另外一個例子是Web服務——物件在伺服器上被序列化,通過網路被(封送或)傳送到的客戶端,然後被反序列化成有用的物件。
從二進位制到XML,.NET框架為開發人員提供了很多序列化選項,甚至允許開發人員建立自己的序列化例程。在本文中,我將著重討論XML的序列化,並告訴你如何利用這一內建的功能。
XML序列化
.NET框架提供的一種形式的序列化是XML序列化。在這種型別的序列化裡,物件狀態被以XML格式儲存。這使得被序列化的物件能夠被不同的系統取得並修改,甚至是那些不是用.NET編寫的系統。另外一個優勢是被序列化的物件對於人來說是可讀和可寫的——因此更新物件的方式莫過於開啟寫字板更改其值。
XML序列化常常被來遠端控制專案和Web服務專案裡,雖然你可能會在別的地方發現它,比如DataSet封送。在與Xpath查詢和Predicate方法一起使用的時候,XML序列化能夠被用來實現物件導向的資料庫——我會在今後的文章裡談這方面的內容。
使用XML序列化
在.NET框架裡利用內建的XML序列化方法相對較為容易。你只需要熟悉一些類和屬性就可以開始使用簡單的XML序列化了:
System.Xml.Serialization名稱空間:含有使用XML序列化所需要的類和功能。這個名稱空間應該被放在使用XML序列化的類的頂部的一個“using”命令裡。
XmlSerializer類:提供將物件序列化和反序列化的功能。
XmlIgnore屬性:告訴XmlSerializer類跳過你不希望序列化的成員。
這個列表只不過讓你對序列化有一個初步的瞭解。還有更多的物件可以供你在使用XML序列化的時候使用。
列表A是將Customer物件序列化的一個簡單例子。這個Customer物件在下載檔案的示例應用程式裡被定義。
列表A Customer customer = newCustomer();
customer.FirstName = "Zach";
customer.LastName = "Smith";
XmlSerializer serializer = newXmlSerializer(typeof(Customer));
StringWriter writer = newStringWriter();
serializer.Serialize(writer, customer);
Console.WriteLine(writer.ToString());
正如你看到的,XML序列化是一個很簡單的過程。我們只需要建立一個需要被序列化的物件,建立用於這種型別物件的XmlSerializer,並呼叫XmlSerializer.Serialize。被序列化的物件然後被寫到提供的Stream裡——在本文中是一個叫做“writer”的StringWriter。
從二進位制到XML,.NET框架為開發人員提供了很多序列化選項,甚至允許開發人員建立自己的序列化例程。在本文中,我將著重討論XML的序列化,並告訴你如何利用這一內建的功能。
XML序列化
.NET框架提供的一種形式的序列化是XML序列化。在這種型別的序列化裡,物件狀態被以XML格式儲存。這使得被序列化的物件能夠被不同的系統取得並修改,甚至是那些不是用.NET編寫的系統。另外一個優勢是被序列化的物件對於人來說是可讀和可寫的——因此更新物件的方式莫過於開啟寫字板更改其值。
XML序列化常常被來遠端控制專案和Web服務專案裡,雖然你可能會在別的地方發現它,比如DataSet封送。在與Xpath查詢和Predicate方法一起使用的時候,XML序列化能夠被用來實現物件導向的資料庫——我會在今後的文章裡談這方面的內容。
使用XML序列化
在.NET框架裡利用內建的XML序列化方法相對較為容易。你只需要熟悉一些類和屬性就可以開始使用簡單的XML序列化了:
System.Xml.Serialization名稱空間:含有使用XML序列化所需要的類和功能。這個名稱空間應該被放在使用XML序列化的類的頂部的一個“using”命令裡。
XmlSerializer類:提供將物件序列化和反序列化的功能。
XmlIgnore屬性:告訴XmlSerializer類跳過你不希望序列化的成員。
這個列表只不過讓你對序列化有一個初步的瞭解。還有更多的物件可以供你在使用XML序列化的時候使用。
列表A是將Customer物件序列化的一個簡單例子。這個Customer物件在下載檔案的示例應用程式裡被定義。
列表A Customer customer = newCustomer();
customer.FirstName = "Zach";
customer.LastName = "Smith";
XmlSerializer serializer = newXmlSerializer(typeof(Customer));
StringWriter writer = newStringWriter();
serializer.Serialize(writer, customer);
Console.WriteLine(writer.ToString());
正如你看到的,XML序列化是一個很簡單的過程。我們只需要建立一個需要被序列化的物件,建立用於這種型別物件的XmlSerializer,並呼叫XmlSerializer.Serialize。被序列化的物件然後被寫到提供的Stream裡——在本文中是一個叫做“writer”的StringWriter。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-442348/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- asp.net JavaScriptSerializer實現序列化和反序列化ASP.NETJavaScript
- .NET 6.0 + WPF 使用 Prism 框架實現導航框架
- .NET 與 LayUI 實現高效敏捷開發框架UI敏捷框架
- 分散式RPC框架Dubbo實現服務治理:整合Kryo實現高速序列化,整合Hystrix實現熔斷器分散式RPC框架
- 用 .SqlSugar ORM 來實現報表功能 .NET CORE /.NETSqlSugarORM
- 用jMolecules框架實現DDD應用開發框架
- 用C++優雅的實現物件到檔案的序列化/反序列化C++物件
- 什麼是Java序列化?如何實現序列化?Java
- 輕鬆實現.NET應用自動更新:AutoUpdater.NET教程
- jackson序列化與反序列化的應用實踐
- .NET 下基於動態代理的 AOP 框架實現揭祕框架
- 用一個檔案,實現迷你 Web 框架Web框架
- 什麼是Java序列化,如何實現java序列化Java
- .NET物件的XML序列化和反序列化物件XML
- 從零開始實現簡單 RPC 框架 5:網路通訊之序列化RPC框架
- JS原生實現表單序列化JS
- Java中使用FlatBuffer實現序列化Java
- Java中使用FlatBuffers實現序列化Java
- ASP.NET實現企業微信接入應用實現身份認證ASP.NET
- koa框架會用也會寫—(koa的實現)框架
- 用laravel框架實現敏感詞彙過濾功能Laravel框架
- 實現springSecurity框架SpringGse框架
- 用 let's Encrypt 實現 HTTPS 示例( fasthttp 與net/http)HTTPAST
- 原生JS實現表單序列化serialize()JS
- 原生實現jquery param序列化引數jQuery
- Svelte入門——Web Components實現跨框架元件複用Web框架元件
- Jackson 庫中@JsonProperty和@JsonAlias註解實現序列化反序列化JSON
- 序列化和反序列化的底層實現原理是什麼?
- AT指令框架的實現框架
- .NET雲原生應用實踐(一):從搭建專案框架結構開始框架
- 用非常硬核的JAVA序列化手段實現物件流的持久化儲存Java物件持久化
- 在.Net框架中 C# 實現多執行緒的同步方法詳解框架C#執行緒
- Protocol Buffer序列化Java框架-ProtostuffProtocolJava框架
- ToplingDB 的序列化框架:簡介框架
- .NET雲原生應用實踐(五):使用Blazor WebAssembly實現前端頁面BlazorWeb前端
- .NET雲原生應用實踐(二):Sticker微服務RESTful API的實現微服務RESTAPI
- Net 實現自定義Aop
- Java:對一個物件序列化和反序列化的簡單實現Java物件
- 使用 Apache Fury 實現極快的序列化Apache