這一篇咱們講「類屬性」頁籤的配置功能,您將瞭解到:如何爲元素子值指定類屬性的名稱,數據類型,及容器類型。html

    若是,你沒看過這個系列的第一篇文章,請先去看這篇文章,不然您可能看不懂本文。 XML代碼生成器——XMLFACTORY 簡介(一)sql

複製代碼
<connectionStrings>
    <add  name="con1" 
        providerName="System.Data.SqlClient"
        connectionString="Data Source=localhost;Initial Catalog=database1;"/>
    <add name="con2"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=localhost;Initial Catalog=database2;"/>
</connectionStrings>
複製代碼

     上面的Xml是.net開發中用到的鏈接字符串配置節點,真正開發時固然用不着自已解析,微軟都準備好了:ConfigurationManager.ConnectionStrings["sqlconn1"].ConnectionString; 咱們在這裏引用它僅用於說明案例。ide

你認爲如下那種方式的實體類,獲取數據更方便?post

A方式 B方式
複製代碼
public class ConnectionStrings
{
   public List<Add> Add{ get; set; }
}

public class Add
{
  public String Name{ get; set; }
  public String ProviderName{ get; set; }
  public String ConnectionString{ get; set; }
}
/*
若是要獲取name爲con1的鏈接字符串需這樣實現
connection爲ConnectionStrings類對象
*/
String sConn =  null;
foreach( Add add in connection.Add )
{
    if ( add.Name=="con1" )
    {
        sConn = add.ProviderName;
        break;
    }
}
複製代碼
複製代碼
複製代碼
public class ConnectionStrings
{
 public Dictionary<String,Add> Add{ get; set; }
}

public class Add
{
 public String Name{ get; set; }
 public String ProviderName{ get; set; }
 public String ConnectionString{ get; set; }
}
/*
若是要獲取name爲con1的鏈接字符串需這樣實現
connection爲ConnectionStrings類對象
*/
String sConn = connection.Add["con1"] .ProviderName;
複製代碼
複製代碼

     A方式用List保存元素<add>中的值,而B方式用Dictionary進行保存。就本例而言,B方式更便於咱們消費數據,它用元素<add>中name屬性作爲Dictionary的鍵值(key),而元素<add>自己作爲Dictionary的值(value)進行存儲。url

如何用代碼生成器生成B型式的實體類呢?spa

1.打開頁面:http://www.codingfactory.net/Page/XmlFactory/client/XmlFactory_Flex.html.net

2.粘貼上面的Xml到「樣本Xml」中,連續點「Next」直到顯示「類屬性」頁籤code

3.左側表格中選中類:ConnectionStrings,右側表格中展開「MapKey」列中的下拉列表,選擇「Name」項。以下圖:orm

     「MapKey」中列出的項是元素<add>的子值,確切的說,是類Add的屬性。你選擇那一項,那一項就作爲Dictionary的key;若是你什麼都不選,那就生成A方式的實體類。注意:這一項的「數據類型」不可手工更改,由於元素<add>已經被指定爲Add類。你能夠在左側列表中選中Add類,看看它的屬性,其數據類型均可以任意選擇。htm

     若是你想指定類屬性的名稱,能夠修改「屬性名稱」列的值。

     「FormatString」用於實體類對象序列化爲Xml時,格式化屬性文本。如:屬性爲DateTime類型,可在「FormatString」中填寫"yyyy-MM-dd"。這樣序列化爲Xml時,該屬性的值會像這樣顯示:2012-03-01。

Summary」是類屬性的註釋信息。生成的代碼會是這個樣子:

複製代碼
/// <summary>
/// 此處內容是在「類名稱」頁籤的「類備註」列中填寫的
/// <summary>
public class SomeClass
{
    /// <summary>
    /// 此處內容是在「類屬性」頁籤的「Summary」列中填寫的
    /// <summary>
    public Int32 Abc{ get; set; }
}
複製代碼

本文示例的生成代碼:

http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9268  
http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9269