[C#]DLL继承IConfigurationSectionHandler即可访问宿主的.exe.config

一般来说,只有Application才能够用自定义的IConfigurationSectionHandler接口类读取app.config中的配置。

只要两步:

第一步,在自己的应用中定义一个类:

public class ActionConfigurationSectionHandler : IConfigurationSectionHandler即可,并且
重载public object Create(object parent,
???object configContext,
???System.Xml.XmlNode section)方法。

然后,在app.config中像log4net一样:

??

???type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
?

注意,type属性填写自己的类的名字和命名空间。

但是,一般来说只有exe和Web页面才可以用这些默认的配置文件,对于一个自定义的DLL,只能自己写一个处理配置文件的类来指定用哪一个配置文件。

否则,这个DLL将重用调用它的那个EXE的配置文件,即用

ConfigurationSettings.GetConfig("ActionServlet/ActionsMap")

实际上访问的是EXE的配置文件SomeApp.exe.config。

?

我自己实现了一个DLL,有一个ActionConfigurationSectionHandler类,并且在SomeApp.exe.config中定义

????type="ActiveServlet.ActionConfigurationSectionHandler,ActiveServlet"/>

寄希望于能够用ConfigurationSettings.GetConfig("ActionsMap")

?



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=58895


### 如何在C#项目中使用app.config文件 #### 配置文件概述 应用程序配置文件(`app.config` 或 `web.config`)用于存储应用程序设置,这些设置可以在运行时读取和修改。对于桌面应用程序,默认情况下创建的是名为 `app.config` 的文件,在编译过程中会被复制并重命名为 `[assemblyname].exe.config`。 #### 创建和编辑配置文件 为了向项目添加配置文件,可以通过Visual Studio中的解决方案资源管理器右键单击项目名称,选择“添加”-> “新建项”,然后选择“应用配置文件”。这会自动创建一个默认的XML结构[^4]。 #### 访问配置节 可以定义自定义配置部分来组织特定类型的配置数据。通过实现 `IConfigurationSectionHandler` 接口或利用 .NET Framework 提供的标准处理程序类之一,能够解析复杂的配置信息[^2]。 #### 使用内置配置属性 对于简单的场景,可以直接访问预定义的应用程序设置而无需编写额外代码。例如: ```csharp string mySettingValue = ConfigurationManager.AppSettings["MyKey"]; int timeoutSeconds = int.Parse(ConfigurationManager.AppSettings["TimeoutInSeconds"]); ``` 上述方法适用于字符串形式的基础配置项获取[^1]。 #### 用户设置持久化 当涉及到保存用户级别的偏好设定时,可以借助于项目的Settings.settings文件来进行声明式编程,并且允许开发者轻松地在设计阶段指定各种类型的数据作为可序列化的对象。要更新用户的首选项并在下次启动时保留更改,则需调用相应的Save()函数: ```csharp Properties.Settings.Default.myColor = Color.AliceBlue; Properties.Settings.Default.Save(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值