シリアライズ
シリアライズ形式
- XmlSerializer
- SoapFormatter(System.Runtime.Serialization.Formatters.Soap)
- BinaryFormatter
/// <summary> /// Xml テキスト取得。 /// </summary> /// <param name="obj">対象オブジェクト。</param> /// <returns>取得された Xmlテキスト。</returns> private static string ToXmlText( object obj ) { XmlSerializer serializer = new XmlSerializer( obj.GetType() ); MemoryStream ms = new MemoryStream(); serializer.Serialize( ms, obj ); ms.Position = 0; byte[] buffer = new byte[ms.Length]; ms.Read( buffer, 0, buffer.Length ); return Encoding.UTF8.GetString( buffer ); } public static void SaveItem( string fileName, object obj ) { File.WriteAllText( fileName, ToXmlText( obj ), Encoding.UTF8 ); } public static T LoadItem<T>( string fileName ) { if ( File.Exists( fileName ) ) { try { XmlSerializer serializer = new XmlSerializer( typeof( T ) ); using ( var stream = File.OpenRead( fileName ) ) { return (T)serializer.Deserialize( stream ); } } catch ( Exception ) { } } return default( T ); }