【问题标题】:About xml serialization in c# .net [closed]关于 c# .net 中的 xml 序列化 [关闭]
【发布时间】:2012-07-23 16:23:42
【问题描述】:

我在面试中被问到以下问题:

  • 解释 XML 序列化。

我不知道 XML 序列化是什么。我查看了一些网站,但找不到关于 XML 序列化的任何(简短而清晰的)解释。

有人能解释一下什么是 XML 序列化吗?这将有助于我对 XML 序列化有一个清晰的了解,并准备好在被问到这个问题时自信地面对未来的面试。..

【问题讨论】:

标签: c# asp.net .net xml


【解决方案1】:

假设您有这样的课程:

Public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int age { get; set; }
}

这个类的对象是这样的:

Person Student = new Person();
Student.FirstName = "John";
Student.LastName = "Smith";
Student.age= 24;

然后当你 xml 序列化对象 Student。您将获得一个 XML 文件作为输出,其中包含以下内容:

<Person>
    <FirstName>John</FirstName>
     <LastName >Smith</LastName >
    <age>24</age>  
</Person>

您可以反序列化 XML 以获取原始对象作为输出。

所以这是类和 XML 之间的一种转换 BTW XML 文件通常是文本文件

【讨论】:

  • 我猜根元素名称将是类名而不是对象名
  • 是的,抱歉我修好了。我写的很快所以没注意
【解决方案2】:

要扩展 Youssef 的答案,您还可以通过执行以下操作来指定序列化 XML 的编写方式:

[XmlRoot("RootElementsName")]
Public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int age { get; set; }
}

这将产生如下 XML:

<RootElementsName>
    <FirstName>John</FirstName>
     <LastName >Smith</LastName >
    <age>24</age>  
</RootElementsName>

您可以在此处阅读有关各种 XML 修饰符的更多信息:http://msdn.microsoft.com/en-us/library/e123c76w

【讨论】:

  • +1 因为我学到了新东西
【解决方案3】:

这意味着将对象转换为 XML 形式,以便它可以通过 HTTP 和其他传输协议进行传输,或者将其存储用于其他目的。 XML 被认为是不同系统之间的数据传输格式(甚至以不同的语言开发)。您可以以 XML 格式将数据从一个应用程序发送到另一个应用程序。大多数 Web 服务以 XML 格式返回数据。各种客户端都可以访问这些 webservice 方法,而不必担心 webservice 是用什么平台/语言编写的,因为它只是处理传入的数据的 XML 形式。

更多阅读:http://msdn.microsoft.com/en-us/library/182eeyhh.aspx

【讨论】:

  • XML 不必传输,它可以简单地保存到磁盘作为配置文件或任何东西。
  • @Mert:是的。我说它可以运输
  • 为什么是 HTTP? Xml 可以通过许多其他协议进行传输,更不用说它的存储频率和传输频率一样。
  • @MichaelGraczyk:你是对的。将更新注释以提及您的观点。感谢您加入。
【解决方案4】:

Wikipedia 上的定义已经差不多了:

序列化是将数据结构或对象状态转换为可以存储(例如,在文件或内存缓冲区中,或通过网络连接链路传输)并在以后“复活”的格式的过程,或者另一个计算机环境。

Xml序列化只是序列化Xml作为存储和传输格式。

【讨论】:

    【解决方案5】:

    首先我们需要了解为什么序列化在 C# 中很重要。当我们运行我们的 c# 应用程序时,我们将拥有 C# 对象。在某个时间点,您可能希望保留它,以便以后可以使用它。例如,如果您正在编写像 firefox 下载器这样的应用程序。当你关闭它时,如果你正在下载它,你可以用上次关闭的状态重新加载它。

    因此,如果您想在硬盘中保留称为二进制序列化的状态。如果您想通过称为 xml 序列化的线路发送对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2012-12-26
      相关资源
      最近更新 更多