XmlExtensionsヘルパー

パブリック静的クラスXmlExtensions
{
静的レイジー<XmlWriterSettings> _settings =新しいレイジー<XmlWriterSettings>(()=>
{
XmlWriterSettings設定=新しいXmlWriterSettings();
settings.Indent = TRUE;
settings.NewLineChars = "\ R \ n"は、
設定。エンコーディング= Encoding.UTF8;
settings.IndentChars = "「、
設定値を返します;
});

静的遅延<XmlSerializerNamespaces> _nsは=新しいレイジー<XmlSerializerNamespaces>(()=>
{
XmlSerializerNamespaces NS =新しいXmlSerializerNamespaces();
ns.Add( ""、 "");
NSを返します;
});

パブリック静的文字列ToXml(このオブジェクトobj)
{
文字列結果= NULL;
使用(VARストリーム=新しいのMemoryStream())
{
XmlSerializerをシリアライザ=新しいXmlSerializerを(obj.GetType())。
使用(VARライター= XmlWriter.Create(ストリーム、_settings.Value))
{
serializer.Serialize(ライター、OBJ、_ns.Value)。
}
(VARリーダー=新しいStreamReaderを(ストリーム、Encoding.UTF8))を使用して、
{
stream.Position = 0。
結果= reader.ReadToEnd()。
}
}
戻り値の結果;
}

/// <要約>
///反序列化XML为类实例
/// </要約>
/// <typeparam名= "T"> </ typeparam>
/// <PARAM NAME = "xmlObj"> < / PARAM>
/// <戻る> </戻り>
パブリック静的T DeserializeXML <T>(文字列xmlObj)
{
XmlSerializerをシリアライザ=新しいXmlSerializerを(typeof演算(T))。
使用(にStringReaderリーダー=新しいにStringReader(xmlObj))
{
リターン(T)serializer.Deserialize(リーダー)。
}
}

/// <要約>
///序列化类实例为XML
/// </要約>
/// <typeparam名= "T"> </ typeparam>
/// <PARAM NAME = "OBJ"> </ PARAM>
/// <戻る> </戻り>
パブリック静的文字列SerializeXML <T>(TのOBJ)
{
使用して(にStringWriterライター=新しいにStringWriter())
{
新しいXmlSerializerを(obj.GetType())。シリアライズ((たTextWriter)作家、OBJ)。
writer.ToStringを返します();
}
}

/// <まとめ>
データセットに/// XMLデータを
/// </要約>
URLファイル/// <PARAM NAME = "URL" > XMLデータが含まれています。</ param>の
パブリック静的(DataSetをXMLToDataSet URL文字列)
{
XmlTextReaderはリーダー= NULL;
データセット、データセットの新しい新しいデータセットA =();
試み
{
リーダーXmlTextReaderは新しい新=(URL);
DataSet.ReadXml(リーダ);
}
キャッチ(例外EX)
{
ex.Source String.Formatの+ =( "{0}"、URL);
}
最後に
{
!IF(リーダー= NULL)
{
reader.Close();
}
}
のdataSet Aを返します;
}
}

おすすめ

転載: www.cnblogs.com/xiaohouye/p/11455003.html