2 weixin 29193361 weixin_29193361 于 2015.06.23 10:26 提问

如何加载一个已经加密的XML文件
c#

如何加载一个已经加密的XML文件,为什么使用了xmldoc.Load(filepath),却报“根级别上的数据无效,第1行,位置1”图片说明

2个回答

lindexi_gd
lindexi_gd   2015.06.23 14:54

先解密然后读
假如你有一个类,在它的上面加上[Serializable]属性就可以了,表示这个类是可以序列化的

 [Serializable]
public class People
{
    public string Name { get; set; }
    public int Age { get; set; }
}

然后采用如下代码将类的实例序列化到文件中

 //序列化
FileStream fs = new FileStream(@"D:\Program\CSharp\NGramTest\NGramTest\serializePeople.dat", FileMode.Create);
People p = new People() { Name = "Haocheng Wu", Age = 24 };

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, p);
fs.Close();

这样就能够上面的那个文件就保存了这个类的实例,如果想要读出来,就可以用

 //反序列化
fs = new FileStream(@"D:\Program\CSharp\NGramTest\NGramTest\serializePeople.dat", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
People p = bf.Deserialize(fs) as People;

加密文件,要读先解密
保存本来unicode现在变成utf-8就不好,Windows有默认,但是和读xml不一样

oyljerry
oyljerry   Ds   Rxr 2015.06.23 11:05

加密后,文件格式应该已经不是xml格式了

Csdn user default icon
上传中...
上传图片
插入图片