Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在代码中使用[Serializable()_C#_Xml - Fatal编程技术网

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指出它