物件與XML之間互相轉化的一個基類
在實際開發過程中經常需要把一個物件儲存到XML中,同時也需要把儲存的XML轉化為物件。隨便程式碼很簡單。是人都會。但經常寫著這樣的重複程式碼就想能不能有什麼樣的方法可以少寫點程式碼呢。能不寫當然最好了。經過摸索就寫了下面這個小玩意
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;
namespace KSoft.ApplicationCommunication
{
public class XMLObject
{
internal void ReadXml(string xml)
{
object obj = null;
StringReader reader = new StringReader(xml);
try
{
System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(this.GetType());
obj = ser.Deserialize(reader);
}
finally { reader.Close(); }
//給This的屬性賦值
System.Reflection.PropertyInfo[] propertyThis = this.GetType().GetProperties();
System.Reflection.PropertyInfo[] propertyObj = obj.GetType().GetProperties();
for (int i = 0; i < propertyThis.Length; i++)
{
propertyThis[i].SetValue(this, propertyObj[i].GetValue(obj, null), null);
}
}
public string ToXML()
{
System.IO.StringWriter writer = new System.IO.StringWriter();
System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(this.GetType());
ser.Serialize(writer, this);
string strRet = writer.ToString();
writer.Close();
return strRet;
}
}
}
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;
namespace KSoft.ApplicationCommunication
{
public class XMLObject
{
internal void ReadXml(string xml)
{
object obj = null;
StringReader reader = new StringReader(xml);
try
{
System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(this.GetType());
obj = ser.Deserialize(reader);
}
finally { reader.Close(); }
//給This的屬性賦值
System.Reflection.PropertyInfo[] propertyThis = this.GetType().GetProperties();
System.Reflection.PropertyInfo[] propertyObj = obj.GetType().GetProperties();
for (int i = 0; i < propertyThis.Length; i++)
{
propertyThis[i].SetValue(this, propertyObj[i].GetValue(obj, null), null);
}
}
public string ToXML()
{
System.IO.StringWriter writer = new System.IO.StringWriter();
System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(this.GetType());
ser.Serialize(writer, this);
string strRet = writer.ToString();
writer.Close();
return strRet;
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-557467/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JSON 與 Java 物件之間的轉化JSONJava物件
- 一個克隆物件的C#基類 (轉)物件C#
- 圖解Excel與Html格式之間的互相轉換圖解ExcelHTML
- [轉] jQuery物件與DOM物件之間的轉換jQuery物件
- jquery物件和DOM物件的區別及互相轉化jQuery物件
- json字串與物件互相轉換JSON字串物件
- jQuery物件和DOM物件和字串之間的轉化jQuery物件字串
- 兩個JS之間的函式互相呼叫JS函式
- DataSet與泛型集合間的互相轉換泛型
- CIPAddressCtrl類的使用(IP地址與CString的互相轉化)iPad
- jquery物件和DOM物件的互相轉換jQuery物件
- 時間戳與yyyy-mm-dd hh:mm:ss格式之間的互相轉換時間戳
- JAXB(一)——初體驗之實現XML和物件之間的對映XML物件
- java 物件與xml相互轉換Java物件XML
- 【JQuery】DOM物件和JQuery物件的互相轉換jQuery物件
- ADO資料與XML資料間的轉換的類(ASP實現) (轉)XML
- XStream實現xml和java物件之間的互相轉換(包括對屬性,別名,下劃線_的處理),同理JSON也可以XMLJava物件JSON
- 關於XML字串和XML Document之間的轉換薦XML字串
- XML轉化為json工具類XMLJSON
- 類與類之間的基本關係
- 基類與派生類的轉換
- 豬行天下之Python基礎——8.1 類與物件Python物件
- java物件與json物件間的相互轉換Java物件JSON
- jQuery物件與原生JS dom物件間的轉換jQuery物件JS
- Python基礎-類與物件Python物件
- 實體類與XML序列化與反序列化XML
- Java Stram實現Map和字串之間互相轉換| BaeldungJava字串
- ABAP和XML資料格式互相轉換的兩種方式XML
- jQuery物件和DOM物件之間的轉換實現jQuery物件
- 功能,介面,類之間轉化,設計的原則的討論。
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- 模組化日常:庫間互相依賴
- js資料型別間的互相轉換JS資料型別
- jQuery物件與DOM物件之轉換jQuery物件
- c++中string類物件和字元陣列之間的相互轉換C++物件字元陣列
- WebSocket系列之JavaScript字串如何與二進位制資料間進行互相轉換WebJavaScript字串
- 字串與二進位制互相轉化(不包含漢字) (轉)字串
- 在Delphi與C++之間實現函式與物件共享 (轉)C++函式物件