http://chs.gotdotnet.com/QuickStart/aspplus/default.aspx?url=%2fquickstart%2fhowto%2fdoc%2fserialize.aspx
解决方案 »
- C#初学,迷茫求指教,,,,
- 这段滚动循环二进制代码的简单程序怎么实现的(高手请教我一下
- 程序开发使用.net3.5 如何降低为2.0
- C#实现用链式纸打印几条很长的曲线,如果实现?请高手指点!
- 请问在winform中,如何让RadioButton有title的效果?
- 智能客户端发布问题
- Assembly.GetExecutingAssembly是什么意思?
- 嵌入ie的winform控件,通过remoting连接服务端,为什么第一次剧慢,以后就正常了,如何解决谢谢?
- 如果用C#控制串口打印?
- C# 无法序列化的问题
- ●●●●Access数据库中如何得到字段的说明?!
- 两个问题:1、提取一段字符的所有字母,2、提取一段字符的所有数字。请问用正则表达式怎么写?非常感谢!
我想问的问题就是,为什么会引发SerializationException?属性类的这种积极作用是怎么做到的?
我问的不是怎么做,是为什么要这么做。
也就是说,我不是问如何序列化,我的问题的是像thinkingforever(努力学习) 说的会引发的异常,是为什么?属性类Serializable在此所起到的决定性的作用,在日常开发中,如果想做到具有这种,不加这属性类在应用中就会产生异常的属性是,该怎么做?
重点是“为什么没这个就不可序列化”。2、属性类在此到底是起个什么作用?
3、且该属性类是如何实现这种积极作用的?
重点是“如何实现”
重点是“为什么没这个就不可序列化”。 CLR有能力Serialize任何一个对象,必须设置[Serializable]是出于安全考虑。Serialization会保存类的私有成员,设想如果有一个Password类,有一个private的String成员:
public class Password {
private string _passwd;
public bool Verify(string input) {
return _passwd == input;
}
} 本来调用这个类的Application可能无法轻易得到_passwd,但是如果允许Serialization,从保存的文件里就可以读出这个字符串的内容了。SerializableAttribute给了类的设计者disable Serialization的能力——如果他认为这样做不安全的话。2、属性类在此到底是起个什么作用?
SerializationAttribute只是改变了这个类的MetaData里面的一个标志位。CLR在序列化一个对象的时候会先检查这个标志。3、且该属性类是如何实现这种积极作用的? 重点是“如何实现”
上面应该已经有答案了。