• C#语言中的XmlSerializer类的XmlSerializer.Serialize(Stream,Object)方法举例详解


    在对象和 XML 文档之间进行序列化和反序列化操作。 XmlSerializer 使您能够控制如何将对象编码为 XML。

    命名空间:   System.Xml.Serialization
    程序集:  System.Xml(位于 System.Xml.dll)

    下面举个例子说明:

    // This is the class that will be serialized.
    public class OrderedItem
    {
       public string ItemName;
       public string Description;
       public decimal UnitPrice;
       public int Quantity;
       public decimal LineTotal;
    
       // A custom method used to calculate price per item.
       public void Calculate()
       {
          LineTotal = UnitPrice * Quantity;
       }
    }

    如何把这个类转换成一个xml文件呢,这时候就需要 XmlSerializer类来处理了。

    它的Serialize(Stream, Object)这个方法,就是用来把一个user类的对象转换成xml文档的。

    我们来看一个例子:

    using System;
    using System.IO;
    using System.Xml.Serialization;public class Test{
       public static void Main(string[] args)
       {
          Test t = new Test();
          // Write a purchase order.
          t.SerializeObject("simple.xml");
       }
    
       private void SerializeObject(string filename)
       {
          Console.WriteLine("Writing With Stream");
    
          XmlSerializer serializer = 
          new XmlSerializer(typeof(OrderedItem));
          OrderedItem i = new OrderedItem();
          i.ItemName = "Widget";
          i.Description = "Regular Widget";
          i.Quantity = 10;
          i.UnitPrice = (decimal) 2.30;
          i.Calculate();
    
          // Create a FileStream to write with.
          Stream writer = new FileStream(filename, FileMode.Create);
          // Serialize the object, and close the TextWriter
          serializer.Serialize(writer, i);
          writer.Close();
       }
    }

    所生成的xml文件如下格式:

    <?xml version="1.0"?>
     <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
       <inventory:ItemName>Widget</inventory:ItemName>
       <inventory:Description>Regular Widget</inventory:Description>
       <money:UnitPrice>2.3</money:UnitPrice>
       <inventory:Quantity>10</inventory:Quantity>
       <money:LineTotal>23</money:LineTotal>
     </OrderedItem>
  • 相关阅读:
    maven 阿里镜像
    红黑树数据结构剖析
    一个简单的通用Makefile实现
    如何取消开机硬盘自检
    用友u8采购发票如何取消审核
    应付帐款—制单处理,出现“供应商被锁定”的解决方法
    用友系统管理员密码清除
    用友软件系统管理员账号admin密码忘记了,如何解决?
    用友 提示“尚有已全部暂估报销的单据未进行处理,不能进行12月的期末处理!”
    MySQL Windows版安装详解
  • 原文地址:https://www.cnblogs.com/yuanfg/p/8945369.html
Copyright © 2020-2023  润新知