在做测试的过程中,测试数据会保存到一个XML文件里面,很多时候还是先有测试数据(XML),后面才会去做测试。在C#里面,读取XML的方法有很多,最近用了一下XmlSerializer,感觉非常爽!

自己先编一个XML文件,也就是测试数据:

 
    Magus
    open5555
 
      29
      30
 
      77
      21


然后利用XSD.EXE工具自动生成一个相应的实例类,不用自己编了~,输入命令

xsd XMLFile1.xml

这样会默认生成一个XMLFile1.xsd文件,然后再根据这个xsd文件来生成相应的C#实例类

xsd XMLFile1.xsd /c

默认会生成一个XMLFile1.cs的实例类

using System.Xml.Serialization;
 
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlRoot()]
public partial class Config {
 
    private string userNameField;
 
    private string passwordField;
 
    private ConfigData[] dataField;
 
    ///
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string UserName {
        get {
            return this.userNameField;
        }
        set {
            this.userNameField = value;
        }
    }
 
    ///
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string Password {
        get {
            return this.passwordField;
        }
        set {
            this.passwordField = value;
        }
    }
 
    ///
    [System.Xml.Serialization.XmlElementAttribute("Data", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public ConfigData[] Data {
        get {
            return this.dataField;
        }
        set {
            this.dataField = value;
        }
    }
}
 
///
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class ConfigData {
 
    private string manField;
 
    private string ladyField;
 
    ///
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string Man {
        get {
            return this.manField;
        }
        set {
            this.manField = value;
        }
    }
 
    ///
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string Lady {
        get {
            return this.ladyField;
        }
        set {
            this.ladyField = value;
        }
    }
}
 
///
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class NewDataSet {
 
    private Config[] itemsField;
 
    ///
    [System.Xml.Serialization.XmlElementAttribute("Config")]
    public Config[] Items {
        get {
            return this.itemsField;
        }
        set {
            this.itemsField = value;
        }
    }
}

然后把XMLFile1.cs和XMLFile1.xml拷到项目底下就可以用了~非常方便~

用的时候:

XmlSerializer xs = new XmlSerializer(typeof(Config));
FileStream fs = new FileStream("XMLFile1.xml", FileMode.Open);
Config config = (Config)xs.Deserialize(fs);
String name = config.UserName
Share and Enjoy:
  • RSS
  • Google Bookmarks
  • Digg
  • del.icio.us
  • Facebook
  • 豆瓣
  • 豆瓣九点
  • FriendFeed
  • LinkedIn
  • Live
  • Ping.fm
  • QQ书签
  • Twitter

Related posts:

  1. NMock2入门经验
  2. ASP.NET中配置文件web.config的优先级
  3. 单元测试中三种准备Test Fixture的方法比较
  4. 在VSTS中创建Web Test的插件
  5. 利用序列化和反序列化实现深拷贝