在代码中使用[Serializable()]

时间:2012-10-30 17:39:06

标签: c# xml

  

可能重复:
  When should i use [Serializable] in C#?

在我们处理序列化时,在类的开头(在命名空间之后和类之前)使用[Serializable()]是多么重要?

我正在查看以下示例:

namespace MyObjSerial
{
    [Serializable()]    //Set this attribute to all the classes that you define to be serialized
    public class Employee : ISerializable
    {
        public int EmpId;
        public string EmpName;

        //Default constructor
        public Employee()
        {
            EmpId = 0;
            EmpName = null;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

二进制序列化 [高度自动化]

使用二进制可序列化

类型的两种方法
  

{如果你想用XML序列化这不是你想要的}

实施ISerializable可让您完全控制序列化

使用serialzablenonSerialized等属性以及其他各种属性。 使用serialzable属性指示序列化程序包含该类型中的所有字段,包括private, public but not properties`


XML序列化 [自动化程度较低]

我想您想在XML中序列化该类,在这种情况下

使用 XML Serializable

类型的两种方法

使用System.Xml.Serialization属性

实施IXmlSerializer以获得更多控制权


您的问题

  

在课程开头使用[Serializable()]很重要   (在命名空间之后和课前)当我们处理时   序列

Ofcorse ..这就是你要告诉编译器序列化那些特定类型的方法。但是你应该根据类应序列化的内容来使用属性或接口。

因此,使用[Serializable()]属性将类型序列化为XML将无效。它用于二进制序列化。您应该使用System.Xml.Serialization attributes的属性在课堂上或使用IXmlSerializer进行 XML序列化

您可以使用

1>Data Contract Serializer
2>Binary Serializer
3>Xml Serializer