`
bluedusk
  • 浏览: 270113 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#的XML序列化和反序列化2

    博客分类:
  • .Net
阅读更多

5.格式化文本内容        

         [XmlText()]
        
public string Name
        
{
            
get { return name; }
            
set { name = value; }
         }


         则Name会生成在<Pupil>XXX(Name)</Pupil>中作为文本

     6.为元素/属性定义数据类型
         XML Schema类型与.NET数据类型有一个Mapping,比如说type对应System.DateTime

         [XmlElement(DataType = " date " )]
        
public DateTime EnrollDate
        
{
            
get { return enrollDate; }
            
set { enrollDate = value; }
         }


         于是生成XML: <EnrollDate>2007-10-19</EnrollDate>
         XMLRoot,XmlAttribute,XMLElement,XMLText,XMLArrayItem标签都可以指定DataType



     7.为枚举修饰符指定其他名称

         public enum Color
        
{
             [XmlEnum(Name
= " White Color " )]
             White,
             [XmlEnum(Name
= " Black Color " )]
             Black,
             [XmlEnum(Name
= " Red Color " )]
             Red
         }


        
private Color showColor;

        
public Color ShowColor
        
{
            
get { return showColor; }
            
set { showColor = value; }
         }


生成XML如下格式:
     <ShowColor>White Color</ShowColor>

     8.串行化多肽数组

         [XmlArray(ElementName = " Cources " ),
         XmlArrayItem(Type
= typeof (String), ElementName = " CourceName " ),
         XmlArrayItem(Type
= typeof (Int32), ElementName = " CourceCode " )]
        
public Object[] Subjects
        
{
            
get { return subjects; }
            
set { subjects = value; }
         }

XmlArrayItem负责指定数组中可能出现的元素类型,以及该类型对应的XML前缀
比如说创建如下的数组:
     Object obj = new Object["Physics", 123, "IT"];

生成XML如下格式:

< Cources >
    
< CourceName > Physics </ CourceName >
    
< CourceCode > 123 </ CourceCode >
    
< CourceName > IT </ CourceName >
</ Cources >


     9.定义可空的对象引用
         如果某属性为null,在串行化时会忽略该属性,可以显示替代的信息,方法如下:

         [XmlElement(IsNullable = true )]
        
public string Address
        
{
            
get { return address; }
            
set { address = value; }
         }

在该位置,生成替代XML:
      <Address xsi:nil="true" />

     10.定义可忽略的字段/属性
         [XmlIgnore()]

分享到:
评论

相关推荐

    C#序列化与反序列化(包括复杂xml对象)

    本文将深入探讨C#中的XML序列化和反序列化技术,包括如何将XML文档解析为对象,以及如何将对象转换回XML文档进行存储。我们将详细讲解三种方法,涵盖从XML节点获取键值对(KV值)到处理对象数组和节点标签组合的反...

    XML序列化与反序列化 实战

    总的来说,这个实战项目提供了XML序列化和反序列化的实用工具,帮助开发者更高效地处理XML数据和C#对象之间的转换。通过理解和使用提供的代码,你可以深入了解XML序列化的工作原理,并将其应用到自己的项目中。

    C# xml序列化和反序列化

    在C#编程中,XML序列化和反序列化是一项重要的技术,它允许我们将对象的状态转换为XML格式的数据,以及将XML数据恢复为等效的对象。这在数据存储、网络传输和配置文件等方面都有广泛的应用。以下是对这个主题的详细...

    C#JSon XML序列化与反序列化工具

    总结来说,理解和掌握C#中的JSON和XML序列化与反序列化是每个.NET开发者必备的技能。自制的解析工具不仅提升了工作效率,也使得数据处理更加灵活和便捷。无论是`System.Text.Json`还是Newtonsoft.Json,或是`System....

    C# 实现序列化,反序列化XML文件 各种类型 万能

    在C#中,我们可以使用`System.Xml.Serialization`命名空间中的`XmlSerializer`类来实现XML序列化。序列化过程通常包括以下步骤: 1. 定义要序列化的类:在类中添加`[Serializable]`属性或者使用`[XmlRoot]`、`...

    C#中Font和Color的Xml序列化

    在本文中,我们将探讨如何通过自定义方式实现Font和Color在XML序列化中的应用。 首先,让我们了解什么是Font和Color。Font对象在C#中代表了文本的外观,包括字体名称、大小、样式(如粗体、斜体)等属性。而Color...

    C# 各种序列化和反序列化

    在C#中,我们可以使用System.Xml.Serialization命名空间中的XmlSerializer类来实现XML序列化和反序列化。通过创建一个XmlSerializer实例,指定要序列化的类型,然后调用其Serialize方法,即可将对象转换为XML字符串...

    C#序列化和反序列化案例.rar

    最常用的序列化类型包括XML序列化(XmlSerializer)、JSON序列化(JavaScriptSerializer或Newtonsoft.Json库)和二进制序列化(BinaryFormatter)。在这个案例中,可能是通过BinaryFormatter或XmlSerializer将对象的...

    c#操作xml和序列化

    3. **XML序列化和反序列化**: C#提供了XmlSerializer类来实现对象到XML和XML到对象的转换。这在保存和加载对象状态时非常有用。 ```csharp [Serializable] public class MyObject { public string Name { get;...

    Xml反序列化

    1. **创建一个XML序列化类**:首先,我们需要定义一个类,该类的属性与XML文件中的元素相对应。例如,如果XML文件包含电源配置信息,可能有一个类名为`PowerConfig`,其中包含如`Voltage`、`Current`和`Frequency`等...

    xml序列化和反序列化 c#

    XML序列化和反序列化是C#编程中处理数据存储和传输的重要技术。XML(Extensible Markup Language)是一种用于标记数据的语言,具有良好的可读性和跨平台性,使其成为网络数据交换的理想选择。C#提供了内置的支持来...

    XmlDemoTranfer Xml序列化与反序列化

    `XmlSerializer`是C#中用于处理XML序列化和反序列化的关键类。要序列化一个对象,你需要创建一个`XmlSerializer`实例,指定要序列化的类型,然后调用`Serialize`方法,将对象写入一个文本流或文件。反序列化则通过...

    C#中以PLCOpen为例子的XML序列化,反序列化的代码

    总的来说,XML序列化和反序列化是C#中处理数据交换和持久化的重要工具。它们简化了与XML格式的数据交互,并能方便地应用到PLCOpen或其他任何基于XML的规范或标准中。通过理解并熟练掌握这一技术,开发者可以更高效地...

    C#序列化和反序列化XML-读取word

    本篇将深入探讨如何使用C#进行XML序列化和反序列化,并且特别关注如何读取Word文档中的XML内容。 XML序列化是将对象的属性和字段转换为XML文档的过程,而反序列化则是相反的过程,即将XML数据转换回对象。这对于...

    XML序列化与反序列化整理文档(12套)

    XML(eXtensible Markup ...通过理解和熟练掌握XML序列化与反序列化,开发者可以有效地在不同的系统和组件之间传递数据,从而提升软件的灵活性和互操作性。所提供的文档和代码实例是深入学习和实践这一技术的好资源。

    C#对象序列化与反序列化

    XML序列化不会保存完整的类型名称或程序集信息,这使得XML数据更具开放性和互操作性。 ##### (3) 使用特性对序列化的控制 - **`[Serializable]`**:表示该类型支持序列化。 - **`[NonSerialized]`**:表示该字段不...

    c#对象序列化与反序列化实例

    C#提供了`System.Xml.Serialization.XmlSerializer`类来处理XML序列化和反序列化。 ```csharp [XmlRoot("Person")] public class Person { [XmlElement("Name")] public string Name { get; set; } [XmlElement...

    C#和Java的序列化反序列化

    C#的XML序列化允许我们控制哪些字段和属性参与序列化,可以通过添加`[XmlElement]`、`[XmlAttribute]`等特性来指定。此外,C#还提供了JSON序列化库如Newtonsoft.Json(Json.NET),它在Web应用中广泛应用,支持更...

    C#序列化和反序列化

    C#提供了多种序列化方法,其中最常见的包括BinaryFormatter、SoapFormatter和XML序列化。接下来我们将详细探讨这三种方法。 1. **BinaryFormatter**: BinaryFormatter是.NET框架中最基本的序列化工具,它将对象...

Global site tag (gtag.js) - Google Analytics