C# 在代码中使用[Serializable()
可能重复:C# 在代码中使用[Serializable(),c#,xml,C#,Xml,可能重复: 在处理序列化时,在类的开头(在命名空间之后和类之前)使用[Serializable()]有何重要性 我正在查看以下示例: namespace MyObjSerial { [Serializable()] //Set this attribute to all the classes that you define to be serialized public class Employee : ISerializable { publi
在处理序列化时,在类的开头(在命名空间之后和类之前)使用[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;
}
}
}
二进制序列化[高度自动化]
使类型二进制可序列化的两种方法
{如果您想在XML中序列化,这不是您想要的}
实现ISerializable
可以让您完全控制序列化
或
使用诸如可序列化
、非序列化
等属性以及各种其他属性。
使用serializable
属性指示序列化程序包括类型中的所有字段,包括private、
public,但不包括
属性`
XML序列化[自动化程度较低] 在这种情况下,我想您应该在
XML
中序列化该类
使类型XML可序列化的两种方法
使用System.Xml.Serialization
属性
或
实现IXmlSerializer
以获得更多控制
你的问题 在类的开头使用[Serializable()]是否重要 (在名称空间之后和类之前)当我们处理 系列化 Ofcorse..这是告诉编译器序列化这些特定类型的方式。但是您应该根据类应序列化到的内容使用属性或接口 因此,使用
[Serializable()]
属性将类型序列化为XML
将不起作用。它用于二进制序列化。您应该将System.XML.Serialization attributes
的属性撒在类上,或者使用IXmlSerializer
进行XML序列化
你可以用
1>Data Contract Serializer
2>Binary Serializer
3>Xml Serializer
二进制序列化[高度自动化]
使类型二进制可序列化的两种方法
{如果您想在XML中序列化,这不是您想要的}
实现ISerializable
可以让您完全控制序列化
或
使用诸如可序列化
、非序列化
等属性以及各种其他属性。
使用serializable
属性指示序列化程序包括类型中的所有字段,包括private、
public,但不包括
属性`
XML序列化[自动化程度较低] 在这种情况下,我想您应该在
XML
中序列化该类
使类型XML可序列化的两种方法
使用System.Xml.Serialization
属性
或
实现IXmlSerializer
以获得更多控制
你的问题 在类的开头使用[Serializable()]是否重要 (在名称空间之后和类之前)当我们处理 系列化 Ofcorse..这是告诉编译器序列化这些特定类型的方式。但是您应该根据类应序列化到的内容使用属性或接口 因此,使用
[Serializable()]
属性将类型序列化为XML
将不起作用。它用于二进制序列化。您应该将System.XML.Serialization attributes
的属性撒在类上,或者使用IXmlSerializer
进行XML序列化
你可以用
1>Data Contract Serializer
2>Binary Serializer
3>Xml Serializer
这个问题有XML和XAML标记;它们与这个问题有什么关系?对于XML,如果是因为要序列化为XML,请编辑您的问题以包含该事实(这将使问题与可能的重复问题不同)。对于XAML,我无法想象它是如何应用的;它们与这个问题有什么关系?对于XML,如果是因为要序列化为XML,请编辑您的问题以包含该事实(这将使问题与可能的重复问题不同)。对于XAML,我无法想象它是如何应用的。您的注释仅适用于BinaryFormatter,它只是一个二进制序列化程序。XML序列化程序不使用
[Serializable]
属性。@JohnsUnders我从来没有这样说过..我说的是System.XML.Serialization
属性&IXMLSerializator
您还说,“当然……这就是你告诉编译器序列化这些特定类型的方法。”@JohnSaunders ahh……更正了它……thx指出了次要的迂腐点:“二进制序列化是一个通用术语,包括一系列序列化程序。您的注释仅适用于BinaryFormatter,它只是一个二进制序列化程序。XML序列化程序不使用[Serializable]
属性。@JohnsUnders我从来没有这样说过..我说的是System.XML.Serialization
属性&IXMLSerializator
您还说,“当然可以。这就是你告诉编译器序列化那些特定类型的方法。”@JohnSaunders-ahh…更正了它。thx指出它