Serializerつくってみた。
というわけで Serializer
/// <summary> /// Serializer クラス。 /// </summary> public class Serializer<T> { public T Deserialize( string filePath ) { using (var stream = File.Open( filePath, FileMode.Open )) { using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader( stream, null, new XmlDictionaryReaderQuotas() ) ) { DataContractSerializer serializer = new DataContractSerializer( typeof( T ) ); return (T)serializer.ReadObject( reader ); } } } public void Serialize( string filePath, T graph ) { try { using (FileStream stream = File.Open( filePath, FileMode.Create )) { using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter( stream ) ) { DataContractSerializer serializer = new DataContractSerializer( typeof( T ) ); serializer.WriteObject( writer, graph ); } } } catch (Exception) { if (!File.Exists( filePath )) { File.Delete( filePath ); } throw; } } }