在DAL层中使用appsettings

时间:2010-01-03 13:49:14

标签: c# winforms appsettings

我有一个winforms应用程序,其中一些数据存储在XML文件中。 应存储这些XML文件的位置可由用户配置,并存储在AppSettings中。 我的所有图层都是单独的组件。我可以从DAL程序集中访问我的设置,还是应该将其作为参数传递到我的所有图层?

当我尝试从DAL图层读取设置时,我遇到了另一个问题

        Configuration config = ConfigurationManager.OpenExeConfiguration(
            System.Reflection.Assembly.GetEntryAssembly().Location);
        string dataStorageLocation = config.AppSettings["DataStorageLocation"];

config.AppSettings [“DataStorageLocation”]给出编译错误:System.Configuration.ConfigurationElement.this [System.Configuration.ConfigurationProperty]由于其保护级别而无法访问。那是为什么?

有人能让我走上正轨吗?感谢。

2 个答案:

答案 0 :(得分:8)

您需要使用config.AppSettings.Settings["DataStorageLocation"]。 有关示例,请参阅the MSDN documentation

或者,恕我直言,您可以使用System.Configuration.ConfigurationManager.AppSettings[name]访问主机应用程序的AppSettings。这可能比您的技术更灵活,因为如果您的DAL程序集例如托管在IIS上的服务层中,它也会起作用。直接以这种方式从主机应用程序的配置文件访问配置信息是完全可以接受的,并且通常比通过层传递配置信息更好。

答案 1 :(得分:3)

调用进程加载的任何程序集都可以访问AppSettings,因此使用您加载的任何程序集访问它们都没有问题。