【问题标题】:Initialize a xml class obtained from Edit, Paste Special, Paste XML as Classes初始化从 Edit、Paste Special、Paste XML as Classes 获得的 xml 类
【发布时间】:2014-07-30 15:25:59
【问题描述】:

我有一个从“编辑、选择性粘贴、将 XML 粘贴为类”生成的类。喜欢解释here. Generating Data Type Classes from XML

XML:

<?xml version="1.0"?>
<Items version="1.0">
  <Item InputFileName="G:\FileFile.txt">
    <Position X="500" Y="100" Z="150"/>
  </Item>
</Items>

类:

namespace Produccion.ClassFile
{
/// <comentarios/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Items
{

    private ItemsItem[] itemField;

    private decimal versionField;

    /// <comentarios/>
    [System.Xml.Serialization.XmlElementAttribute("Item")]
    public ItemsItem[] Item
    {
        get
        {
            return this.itemField;
        }
        set
        {
            this.itemField = value;
        }
    }

    /// <comentarios/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public decimal version
    {
        get
        {
            return this.versionField;
        }
        set
        {
            this.versionField = value;
        }
    }
}

/// <comentarios/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ItemsItem
{

    private ItemsItemPosition positionField;

    private string inputFileNameField;

    /// <comentarios/>
    public ItemsItemPosition Position
    {
        get
        {
            return this.positionField;
        }
        set
        {
            this.positionField = value;
        }
    }

    /// <comentarios/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string InputFileName
    {
        get
        {
            return this.inputFileNameField;
        }
        set
        {
            this.inputFileNameField = value;
        }
    }
}

/// <comentarios/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ItemsItemPosition
{

    private decimal xField;

    private decimal yField;

    private decimal zField;

    /// <comentarios/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public decimal X
    {
        get
        {
            return this.xField;
        }
        set
        {
            this.xField = value;
        }
    }

    /// <comentarios/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public decimal Y
    {
        get
        {
            return this.yField;
        }
        set
        {
            this.yField = value;
        }
    }

    /// <comentarios/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public decimal Z
    {
        get
        {
            return this.zField;
        }
        set
        {
            this.zField = value;
        }
    }
}

}

我不知道如何用文件中的数据初始化这个类。

【问题讨论】:

    标签: c# asp.net xml visual-studio-2012 visual-studio-2013


    【解决方案1】:

    反序列化是读取 XML 文档并构造强类型化到文档的 XML Schema (XSD) 的对象的过程。

    你会做这样的事情

    XmlSerializer serializer = new XmlSerializer(typeof(Items));
    
    // Declare an object variable of the type to be deserialized.
    Items i;
    
    using (Stream reader = new FileStream(filename, FileMode.Open))
    {
        // Call the Deserialize method to restore the object's state.
        i = (Items)serializer.Deserialize(reader);          
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 1970-01-01
      • 2012-01-31
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 2012-11-20
      • 1970-01-01
      相关资源
      最近更新 更多