XML代码生成器——XmlFactory 简介(四)

这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型。

    如果,你没看过这个系列的第一篇文章,请先去看这篇文章,否则您可能看不懂本文。 XML代码生成器——XMLFACTORY 简介(一)

< 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; 我们在这里引用它仅用于说明案例。

你认为以下那种方式的实体类,获取数据更方便?

A方式 B方式
public  class ConnectionStrings
{
    public List<Add> Add{  getset; }
}

public  class Add
{
   public String Name{  getset; }
   public String ProviderName{  getset; }
   public String ConnectionString{  getset; }
}
/*
如果要获取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{  getset; }
}

public  class Add
{
  public String Name{  getset; }
  public String ProviderName{  getset; }
  public String ConnectionString{  getset; }
}
/*
如果要获取name为con1的连接字符串需这样实现
connection为ConnectionStrings类对象
*/
String sConn = connection.Add[ " con1 " ] .ProviderName;

     A方式用List保存元素<add>中的值,而B方式用Dictionary进行保存。就本例而言,B方式更便于我们消费数据,它用元素<add>中name属性做为Dictionary的键值(key),而元素<add>本身做为Dictionary的值(value)进行存储。

如何用代码生成器生成B型式的实体类呢?

1.打开页面:http://www.codingfactory.net/Page/XmlFactory/client/XmlFactory_Flex.html

2.粘贴上面的Xml到“样本Xml”中,连续点“Next”直到显示“类属性”页签

3.左侧表格中选中类:ConnectionStrings,右侧表格中展开“MapKey”列中的下拉列表,选择“Name”项。如下图:

     “MapKey”中列出的项是元素<add>的子值,确切的说,是类Add的属性。你选择那一项,那一项就做为Dictionary的key;如果你什么都不选,那就生成A方式的实体类。注意:这一项的“数据类型”不可手工更改,因为元素<add>已经被指定为Add类。你可以在左侧列表中选中Add类,看看它的属性,其数据类型都可以任意选择。

     如果你想指定类属性的名称,可以修改“属性名称”列的值。

     “FormatString”用于实体类对象序列化为Xml时,格式化属性文本。如:属性为DateTime类型,可在“FormatString”中填写"yyyy-MM-dd"。这样序列化为Xml时,该属性的值会像这样显示:2012-03-01。

Summary”是类属性的注释信息。生成的代码会是这个样子:

///   <summary>
///  此处内容是在“类名称”页签的“类备注”列中填写的
///   <summary>
public  class SomeClass
{
     ///   <summary>
    
///  此处内容是在“类属性”页签的“Summary”列中填写的
    
///   <summary>
     public Int32 Abc{  getset; }
}

本文示例的生成代码:

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

转载于:https://www.cnblogs.com/rada2002/archive/2012/03/26/2390494.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值