http://chs.gotdotnet.com/QuickStart/aspplus/default.aspx?url=%2fquickstart%2fhowto%2fdoc%2fserialize.aspx

解决方案 »

  1.   

    它指示一个类可以序列化.如果没有用此属性标记了该对象,则引发 SerializationException。 
      

  2.   

    http://www.pconline.com.cn/pcedu/empolder/net/0405/368027.html
      

  3.   

    TO thinkingforever(努力学习):
    我想问的问题就是,为什么会引发SerializationException?属性类的这种积极作用是怎么做到的?
      

  4.   

    首先,谢谢各位!
    我问的不是怎么做,是为什么要这么做。
    也就是说,我不是问如何序列化,我的问题的是像thinkingforever(努力学习) 说的会引发的异常,是为什么?属性类Serializable在此所起到的决定性的作用,在日常开发中,如果想做到具有这种,不加这属性类在应用中就会产生异常的属性是,该怎么做?
      

  5.   

    将 SerializableAttribute 属性应用于一个类型可指示该类型的实例可以序列化。如果正在序列化的对象图中的任何类型未应用 SerializableAttribute 属性,公共语言运行库则会引发 SerializationException。即使该类也会实现 ISerializable 接口来控制序列化进程,仍要应用 SerializableAttribute 属性。默认情况下,类型中由 SerializableAttribute 标记的所有公共和私有字段都会进行序列化,除非该类型实现 ISerializable 接口来重写序列化进程。默认的序列化进程会排除用 NonSerializedAttribute 属性标记的字段。如果可序列化类型的字段包含指针、句柄或其他某些针对于特定环境的数据结构,并且不能在不同的环境中以有意义的方式重建,则最好将 NonSerializedAttribute 属性应用于该字段。
      

  6.   

    多谢各位的回答!我的问题:1、属性类Serializable可使一个类可序列化,但为什么没这个就不可序列化?
         重点是“为什么没这个就不可序列化”。2、属性类在此到底是起个什么作用? 
    3、且该属性类是如何实现这种积极作用的? 
         重点是“如何实现”
      

  7.   

    >>>重点是“为什么没这个就不可序列化”。不是不可序列化,有的类需要序列化,有的类不需要序列化。.NET做了一个选择,任何类,默认情形下是不可序列化的。有了该属性,CLR才知道你的类可以序列化,它就可以序列化任何没有标记NonSerializedAttribute的公开/私有成员。>>>>属性类在此到底是起个什么作用? 这个属性只是向CLR表明,所指类是可以序列化的,这样,CLR在序列化过程中发现哪个对象不具有该属性,就可以向你提出抗议
      

  8.   

    1、属性类Serializable可使一个类可序列化,但为什么没这个就不可序列化?
         重点是“为什么没这个就不可序列化”。  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、且该属性类是如何实现这种积极作用的? 重点是“如何实现”
       上面应该已经有答案了。
      

  9.   

    我认为这个贴子好经典,CSDN真的需要这样的贴子。深入!!!!! 哈哈!!!个人观点