代码之家  ›  专栏  ›  技术社区  ›  Reto Meier

访问调用应用程序的设置(app.config)

  •  1
  • Reto Meier  · 技术社区  · 15 年前

    我有一个winforms应用程序(“wf”),以及一个由该winforms应用程序(“lib”)调用的库。

    WF具有settings.settings(Visual Studio设计器)和app.config组合。我认为设计师是一个前端,可以自动生成app.config文件。为了在WF中使用这些设置,我使用它自动生成的类的强类型属性(即wf.settings.myTimeOutSetting)。

    当WF调用lib中的方法时,我想从lib中使用WF的一个设置。在被调用方(lib)代码中,如何从调用方(wf's)app.config检索设置?

    4 回复  |  直到 10 年前
        1
  •  4
  •   Community CDub    10 年前

    就像约翰说的,这是个坏主意。调用方(在本例中为exe)应将所需信息传递给dll。这样,您以后可以在其他地方重新使用DLL,而不必对app.config设置有“不可见”的依赖关系。

    试试这个:

    Dim oConfiguration As System.Configuration.Configuration
    oConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
    Dim sValue As String = oConfiguration.AppSettings.Settings("setting").Value
    
        2
  •  3
  •   John Saunders    15 年前

    答案是:不要这样做。

    让调用应用程序在调用中或在构造函数中传递您需要知道的任何信息。被调用的组件不需要知道调用方。

        3
  •  1
  •   bbqchickenrobot joe_coolish    15 年前

    在项目中添加对System.Configuration的引用。

    然后,在要引用配置文件的特定.cs或.vb(或其他)文件中,添加以下内容:

    C:使用system.configuration; vb:导入系统.配置

    然后您可以通过如下方式访问web配置:

    C: system.configuration.configurationmanager.appsettings[“设置要”];

    VB: system.configuration.configurationmanager.appsettings(“要设置的”)。

    如果您想要一个完整的部分,我认为该类中还有一些方法可以做到这一点。

        4
  •  0
  •   Cody C    15 年前

    就像在Windows窗体中那样。它首先会自动查看调用应用程序的app.config。