c# - 为什么类不需要标记为要序列化的 [DataContract] 或 [Serializable] 属性?

标签 c# serialization

Microsoft 在其文章“How to serialize an object to XML by using Visual C#”中提供了代码。

using System;

public class clsPerson
{
  public  string FirstName;
  public  string MI;
  public  string LastName;
}

class class1
{ 
   static void Main(string[] args)
   {
      clsPerson p=new clsPerson();
      p.FirstName = "Jeff";
      p.MI = "A";
      p.LastName = "Price";
      XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
      x.Serialize(Console.Out, p);
      Console.WriteLine();
      Console.ReadLine();
   }
}    

但是,为什么类 clsPerson 不需要用 [DataContract] 或 [Serializable] 属性标记?

最佳答案

因为 XmlSerializer不需要将这些属性放在类上。只有BinaryFormatterDataContractSerializer做。就此而言,DataContractSerializer 可以不用。

参见相关问题:Why is Serializable Attribute required for an object to be serialized

关于c# - 为什么类不需要标记为要序列化的 [DataContract] 或 [Serializable] 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912532/

相关文章:

java - 如何将 Class[] 和 Object[] 传递给 gwt 服务?

java - 遍历所有序列化对象

c# - 处理数据库中的空值

c# - 什么是 HttpRequestMessage.Properties?

c# - Entity Framework 不保存修改后的 child

php - 如何使用jquery序列化进行文件上传

java - 使用简单 XML 反序列化时出现未知异常

c# - 未定义实体 XML 解析异常

c# - OWIN/Identity 2.0 - 将 pk 从字符串更改为 GUID

c++ - 使用内存映射文件进行序列化