例えば:
1.オブジェクトターンXML(XMLに標的配列)
文字列 strImage = XmlSerializeHelper.Serialize <リスト<ImageSingle >>(イメージリスト)。
2.xml転送オブジェクト(デシリアライズ)
画像bojimag = XmlSerializeHelper.DeSerialize <画像>(strimage)。
カテゴリ以下のプロセスシーケンス:
使用してシステムを。 使用してSystem.Collections.Genericを。 使用してSystem.Linqのを。 使用してSystem.Textのを。 使用してSystem.Xml.Serializationを。 使用してSystem.IOを。 使用してSystem.Xmlのを。 使ってSystem.Text.RegularExpressionsを。 名前空間ヘルパー { パブリック クラスXmlSerializeHelper { パブリック 静的 文字列シリアライズ<T> (T OBJ) { リターンシリアライズ<T> (OBJ、Encoding.UTF8)。 } // 对象转XML のパブリック 静的 ストリング ObjToXml(オブジェクトOBJ) { 使用(MemoryStreamをストリーム= 新しいのMemoryStream()) { XmlSerializerをXML = 新しいXmlSerializerを(obj.GetType())。 xml.Serialize(ストリーム、OBJ)。 Stream.Position = 0 ; StreamReaderをSR = 新しいStreamReaderを(ストリーム); 文字列 STR = sr.ReadToEnd()。 リターンSTR。 } } /// <要約> ///实体对象序列化成XML字符串 /// </要約> /// <typeparam名= "T"> </ typeparam> /// <PARAM NAME = "OBJ"> </ PARAM> /// <戻ります> </リターン> パブリック 静的 文字列シリアライズ<T> (T OBJ、エンコーディングエンコーディング) { 試み { 場合(OBJ == NULL ) スロー 新しい例外ArgumentNullException(" OBJを" )。 VaRの SER = 新しいXmlSerializerを(obj.GetType()); MemoryStream()) { 使用(VARのライター= 新しいてXmlTextWriter(MS、コード)) { writer.Formatting = Formatting.Indented。 ser.Serialize(作家、OBJ)。 } VAR XML = encoding.GetString(ms.ToArray())。 XML = xml.Replace(" のxmlns:XSI = \"のhttp://www.w3.org/2001/XMLSchema-instance \」"、"" ); XML = xml.Replace(" のxmlns:XSD = \"のhttp://www.w3.org/2001/XMLSchema \」" " " ); XML = Regex.Replace(XML、@" \ S {2} " " " ); XML = Regex.Replace(XML、@" \ {S} 1 />。" " /> " ); 戻り、XML } } キャッチ(例外EX) { スローEX; } } /// <まとめ> /// デシリアライゼーションXML文字オブジェクト、デフォルトはUTF-8エンコーディングである /// </要約> /// <typeparam名= "T"> </ typeparam> /// <PARAM NAME = "XML"> </ PARAM> /// <戻る> </戻り> パブリック 静的 Tデシリアライズ<T>(文字列XML) ここで、 T :新しい() { 戻りデシリアライズ<T> (XML、Encoding.UTF8)。 } /// <要約> /// 反序列化XML字符为对象 /// </要約> /// <typeparam名= "T"> </ typeparam> /// <PARAM NAME = "XML"> </ param>の /// <PARAM NAME = "エンコード"> < Tデシリアライズ<T>(文字列XMLエンコーディングエンコーディング) ここで、 T:新しい() { 試み { VAR mySerializer = 新しい XmlSerializerを(typeof演算(T))。 使用(VARの MS = 新規のMemoryStream(encoding.GetBytes(XML)を)) { 使用(VARの SR = 新しいStreamReaderを(MS、コード)) { リターン(T)mySerializer.Deserialize(SR)。 } } } キャッチ(例外e) { 戻り デフォルト(T)。 } } } }