分享
 
 
 

Configuration Management Application Block (cmab)使用方法

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

Cmab使用方法

1. 新建一个WINform项目 testa。

2. 引用Microsoft.ApplicationBlocks.ConfigurationManagement.dll和Microsoft.ApplicationBlocks.ConfigurationManagement.Interfaces.dll两个类库。

3. 在程序里面导入命名空间 using Microsoft.ApplicationBlocks.ConfigurationManagement;

4. 在解决方案管理器里的项目上单击鼠标右键,“添加-》添加新项-》应用程序配置文件”,把新添加的配置文件命名为App.Config 单击打开添加配置文件。

当添加完成后就在配置文件中添加如下代码:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<section name="applicationConfigurationManagement" type="Microsoft.ApplicationBlocks.ConfigurationManagement.ConfigurationManagerSectionHandler,Microsoft.ApplicationBlocks.ConfigurationManagement, Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />

<section name="OtherConfigFile" type="testa.CustomSectionHandler,testa, Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />

</configSections>

<applicationConfigurationManagement defaultSection="UnencryptedXml">

<configSection name="OtherConfigFile">

<configCache enabled="true" refresh="1 * * * *" />

<configProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"

type="Microsoft.ApplicationBlocks.ConfigurationManagement.Storage.XmlFileStorage" signed="false"

refreshOnChange="true" encrypted="false" path="../../otherConfigFile.config" />

<protectionProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"

type="Microsoft.ApplicationBlocks.ConfigurationManagement.DataProtection.BCLDataProtection"

hashKey="MyXuEd6f+go=" symmetricKey="VToaqZjp8C27V90oSmT/CF+afvRGClc9" initializationVector="ou95G2/WziI="/>

</configSection>

</applicationConfigurationManagement>

</configuration>

5. 添加完配置文件后在程序中再添加一个新的XML配置文件,文件名为OtherConfigFile,然后在此文件中添加如下代码。

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<OtherConfigFile>

<CustomConfigurationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<name>tiger</name>

<age>30</age>

</CustomConfigurationData>

</OtherConfigFile>

</configuration>

此段XML配置文件是自定义的配置文件其中configuration、OtherConfigFile、CustomConfigurationData是固定的XML标识。

包括在CustomConfigurationData里面的name、age两个元素为自定义元素。

6. 新建一个名为CustomConfigurationData.cs的类,此类为序列化的类

在类中定义以下两个属性,这两个属性分别为姓名和年龄

public string name

{

get{ return _name; }

set{ _name = value; }

} string _name;

public string age;

{

get{ return _age; }

set{ _age = value; }

} string _age;

7. 新建一个名为CustomSectionHandler.cs的类,此类是用来控制读取和写入配置文件的,它实现了IconfigurationSectionHandler和IconfigurationSectionHandlerWriter两个接口。里面提供的CREATE方法是用来读取配置文件数据的,Serialize是用来写入配置文件数据的。(这两个类加载到程序的命名空间下面)

[ComVisible(false)]

public class CustomSectionHandler

: IConfigurationSectionHandler, IConfigurationSectionHandlerWriter

{

XmlSerializer xs = new XmlSerializer( typeof(CustomConfigurationData) );

public object Create( object parent, object hmm, XmlNode configSection )

{

object tmpObj = null;

tmpObj = xs.Deserialize( new StringReader( configSection.OuterXml ) );

return (CustomConfigurationData)tmpObj;

}

public XmlNode Serialize( object value )

{

try

{

StringWriter sw = new StringWriter( System.Globalization.CultureInfo.CurrentUICulture );

xs.Serialize( sw, value );

XmlDocument doc = new XmlDocument();

doc.LoadXml( sw.ToString() );

return doc.ChildNodes[1];

}

catch( Exception e )

{

throw new ConfigurationException( "此配置项不能被序列化!", e );

}

}

}

8. 在窗体上添加两个文本框、两个lable和两个按钮

在两个lable的text上配别填写“姓名”和“年龄”

两个文本框分别命名为txtName和txtAge。

把button1的name改为btnRead,text属性改为“读取”,button2的name属性改为btnWrite,

text属性改为“写入”。

9. 在btnRead的单击事件里面添加如下代码

CustomConfigurationData cclass = (CustomConfigurationData)ConfigurationManager.Read("OtherConfigFile" );

txtName.Text = cclass.name;

txtAge.Text = cclass.age;

10.在btnWrite的单击事件里添加如下代码

CustomConfigurationData cf = new CustomConfigurationData();

cf.name = txtName.Text.Trim();

cf.age = txtAge.Text.Trim();

ConfigurationManager.Write("OtherConfigFile",cf);

完成上述步骤后运行程序就可以对配置文件进行读写操作了。

如果把配置文件的 encrypted 设置为true的话,就可以实现加密了

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<section name="applicationConfigurationManagement" type="Microsoft.ApplicationBlocks.ConfigurationManagement.ConfigurationManagerSectionHandler,Microsoft.ApplicationBlocks.ConfigurationManagement, Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />

<section name="OtherConfigFile" type="testa.CustomSectionHandler,testa, Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />

</configSections>

<applicationConfigurationManagement defaultSection="UnencryptedXml">

<configSection name="OtherConfigFile">

<configCache enabled="true" refresh="1 * * * *" />

<configProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"

type="Microsoft.ApplicationBlocks.ConfigurationManagement.Storage.XmlFileStorage" signed="false"

refreshOnChange="true" encrypted="true" path="../../otherConfigFile.config" />

<protectionProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"

type="Microsoft.ApplicationBlocks.ConfigurationManagement.DataProtection.BCLDataProtection"

hashKey="MyXuEd6f+go=" symmetricKey="VToaqZjp8C27V90oSmT/CF+afvRGClc9" initializationVector="ou95G2/WziI="/>

</configSection>

</applicationConfigurationManagement>

</configuration>

5. 添加完配置文件后在程序中再添加一个新的XML配置文件,文件名为OtherConfigFile,然后在此文件中添加如下代码。

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<OtherConfigFile>

<CustomConfigurationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<name>tiger</name>

<age>30</age>

</CustomConfigurationData>

</OtherConfigFile>

</configuration>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有