我有一个.NET DLL需要从它的配置文件中读取它的配置设置.通常,配置文件与DLL放在同一目录中.但是,如果DLL是GAC,我如何读取配置文件,因为我只能将DLL放在GAC中,而不是它的配置文件.
用户是否需要配置Dll?如果是这样,那么DLL应该使用app.config文件中的配置设置,而不是它自己的配置.app.config文件应存储在与应用程序相同的目录中.如果没有,那么你可以采取几种不同的方式.您可以对machine.config文件进行更改,以便您的Dll可以在那里找到它们.我不会这样做.或者,您可以将配置存储在设置类中.这些可以通过配置覆盖,但是您的默认值将通过属性在设置类的生成代码中设置,因此缺少配置文件不会影响您的Dll,只需要默认值.
我同意tvanfosson Gac'ed dll将从应用程序的路径中读取.但你也可以用这种方式通知dll这是路径:
System.Configuration.ExeConfigurationFileMap fileMap = new System.Configuration.ExeConfigurationFileMap(); fileMap.ExeConfigFilename = "THE PATH TO THE CONFIG"; System.Configuration.Configuration cfg = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, System.Configuration.ConfigurationUserLevel.None); string thevalue=cfg.AppSettings.Settings[variable].Value;