我有一个C#类,如下所示:

class CoverageInfo {
    public string className;
    public int blocksCovered;
    public int blocksNotCovered;

    public CoverageInfo(string className, int blocksCovered, int blocksNotCovered)
    {
        this.className = className;
        this.blocksCovered = blocksCovered;
        this.blocksNotCovered = blocksNotCovered;
    }
}


而且,我有一个List,ModuleName,BlocksCovered / BlocksNotCovered变量。
在这些信息中,我需要创建一个XML文件,如下所示。

<Coverage>
  <Module>
    <ModuleName>hello.exe</ModuleName>
    <BlocksCovered>5</BlocksCovered>
    <BlocksNotCovered>5</BlocksNotCovered>
    <Class>
       <ClassName>Fpga::hello</ClassName>
       <BlockCovered>5</BlocksCovered>
       <BlocksNotCovered>2</BlocksNotCovered>
    </Class>
    <Class>
        ...
    </Class>
  </Totalcoverage>
</Coverage>


如何使用C#做到这一点?

最佳答案

在这种简单的情况下,我将对XML序列化属性使用XmlSerializer

这里提供了一个很好的教程:

http://www.codeproject.com/KB/XML/GameCatalog.aspx

我敦促您使用属性而不是成员,因为将来您将更灵活地实现挂钩或区分获取/设置访问权限。 (但是,如果您仍然想使用XML属性,则后者必须保持公开状态,否则必须切换到实现IXmlSerializable。)

在您的情况下,代码如下所示:

class CoverageInfo {
    [XmlElement("ClassName")]
    public string className;
    [XmlElement("BlockCovered")]
    public int blocksCovered;
    [XmlElement("BlocksNotCovered")]
    public int blocksNotCovered;

    ....
}


然后由XmlSerializer完成该工作

关于c# - C#中的XML类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5012900/

10-16 08:01