Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }