/// <summary> /// 将文档字符串反序列化到指定的数据写入器中。 /// </summary> /// <typeparam name="Key">数据写入器键的类型</typeparam> /// <param name="textFormatter">文档反序列化器</param> /// <param name="textReader">文档字符串读取器</param> /// <param name="dataWriter">数据写入器</param> public static void DeserializeToWriter <Key>(this ITextFormatter textFormatter, TextReader textReader, IDataWriter <Key> dataWriter) { AuxiliaryWriter <Key> .ThreadDataWriter = dataWriter; textFormatter.Deserialize <AuxiliaryWriter <Key> >(textReader); AuxiliaryWriter <Key> .ThreadDataWriter = null; }
public static T ReadFromTextFile <T>(string filePath, ITextFormatter <T> formatter, T @default = default) { if (File.Exists(filePath)) { using (var reader = new StreamReader(filePath)) { return(formatter.Deserialize(reader)); } } return(@default); }
public static T ReadFromTextFile <T>(string filePath, ITextFormatter <T> formatter, ICryptoTransform decryptor, T @default = default) { if (File.Exists(filePath)) { using (var innerStream = File.Open(filePath, FileMode.Open)) { using (var cryptoStream = new CryptoStream(innerStream, decryptor, CryptoStreamMode.Read)) { using (var reader = new StreamReader(cryptoStream)) { return(formatter.Deserialize(reader)); } } } } return(@default); }