5

我有一个 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] 由于其保护级别而无法访问。这是为什么?

有人可以让我走上正轨吗?谢谢。

4

2 回答 2

8

你需要使用config.AppSettings.Settings["DataStorageLocation"]. 有关示例,请参阅MSDN 文档

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

于 2010-01-03T13:59:17.453 回答
3

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

于 2010-01-03T16:27:07.573 回答