• 反序列化


    <?xml version="1.0" encoding="utf-8" ?>
    <OrderedItem>
    <ItemName>Widget</ItemName>
    <Description>Regular Widget</Description>
    <UnitPrice>2.3</UnitPrice>
    <Quantity>10</Quantity>
    <LineTotal>23</LineTotal>
    </OrderedItem>

    ------------------------------------
    using System;
    using System.IO;
    using System.Text;
    using System.Xml;

    using System.Diagnostics;
    using System.Xml.Serialization;

    // This is the class that will be deserialized.
    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;
     }
    }
     
    public class Test
    {
     public static void Main()
     {
      Test t = new Test();
      // Read a purchase order.
      t.DeserializeObject("simple.xml");
     }
     private void DeserializeObject(string filename)
     {  
      Console.WriteLine("Reading with TextReader");

      // Create an instance of the XmlSerializer specifying type.
      XmlSerializer serializer =
       new XmlSerializer(typeof(OrderedItem));

      OrderedItem i;

      DateTime dt = System.DateTime.Now;
      //方法1 TextReader reader = new StreamReader(filename, Encoding.Default);
      //方法2 Stream reader= new FileStream(filename,FileMode.Open);
      FileStream fs = new FileStream(filename, FileMode.Open);
      XmlReader reader = new XmlTextReader(fs);

      i = (OrderedItem) serializer.Deserialize(reader);
      Debug.WriteLine((System.DateTime.Now - dt).ToString());
      Debug.WriteLine(i.ItemName);
     }
    }


    方法2和方法3比较快一点。

  • 相关阅读:
    OpenCV && C++ 01
    图像矩的理解
    Halcon Example
    LabVIEW
    Working Experience
    Working Experience
    Working Experience
    C++
    Trigger,Cursor
    Paging
  • 原文地址:https://www.cnblogs.com/huqingyu/p/68123.html
Copyright © 2020-2023  润新知