【问题标题】:Using appsettings in the DAL layer在 DAL 层中使用 appsettings
【发布时间】:2010-01-04 00:27:07
【问题描述】:

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

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

【问题讨论】:

    标签: c# winforms appsettings


    【解决方案1】:

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

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

    【讨论】:

    • 我遇到了同样的错误..我正在使用自定义配置文件,要访问此自定义配置文件的 AppSettings 部分中定义的值,我必须使用以下内容:string val=config.AppSettings .Settings["OpMode"].Value.谢谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 2011-12-23
      • 2011-11-02
      • 2010-12-24
      • 2012-12-19
      • 2016-02-23
      • 1970-01-01
      相关资源
      最近更新 更多