這一篇咱們講「類屬性」頁籤的配置功能,您將瞭解到:如何爲元素子值指定類屬性的名稱,數據類型,及容器類型。html
若是,你沒看過這個系列的第一篇文章,請先去看這篇文章,不然您可能看不懂本文。 XML代碼生成器——XMLFACTORY 簡介(一)sql
<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
![](http://static.javashuo.com/static/loading.gif)
「MapKey」中列出的項是元素<add>的子值,確切的說,是類Add的屬性。你選擇那一項,那一項就作爲Dictionary的key;若是你什麼都不選,那就生成A方式的實體類。注意:這一項的「數據類型」不可手工更改,由於元素<add>已經被指定爲Add類。你能夠在左側列表中選中Add類,看看它的屬性,其數據類型均可以任意選擇。htm
若是你想指定類屬性的名稱,能夠修改「屬性名稱」列的值。
「FormatString」用於實體類對象序列化爲Xml時,格式化屬性文本。如:屬性爲DateTime類型,可在「FormatString」中填寫"yyyy-MM-dd"。這樣序列化爲Xml時,該屬性的值會像這樣顯示:2012-03-01。
「Summary」是類屬性的註釋信息。生成的代碼會是這個樣子:
/// 此處內容是在「類名稱」頁籤的「類備註」列中填寫的
/// <summary>
public class SomeClass
{
/// <summary>
/// 此處內容是在「類屬性」頁籤的「Summary」列中填寫的
/// <summary>
public Int32 Abc{ get; set; }
}
本文示例的生成代碼:
http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9268http://www.codingfactory.net/Page/XmlFactory/OutPut/XmlCSharp.aspx?id=9269