【发布时间】:2014-12-11 00:05:33
【问题描述】:
我有一个带有设置文件的 c# 库。我想知道是否有办法在外部文件中发布设置,以便用户可以编辑设置和更改一些值。
我一直在尝试几种组合,但设置文件总是将其值嵌入到 dll 编译文件中,我希望有类似 app.config 但带有库的东西。这可能吗?
谢谢
【问题讨论】:
我有一个带有设置文件的 c# 库。我想知道是否有办法在外部文件中发布设置,以便用户可以编辑设置和更改一些值。
我一直在尝试几种组合,但设置文件总是将其值嵌入到 dll 编译文件中,我希望有类似 app.config 但带有库的东西。这可能吗?
谢谢
【问题讨论】:
是的,是的。您只需要在代码中动态加载它并像普通的应用配置一样使用:
var path = @"C:\YourLib.dll"; // your config file should be named YourLib.dll.config
Configuration Config = ConfigurationManager.OpenExeConfiguration(path); // this may be class field
Setting1 = Config.AppSettings.Settings["Setting1"] != null ? Config.AppSettings.Settings["Setting1"].Value : something;
我不确定相对路径是否有效,请随意尝试:)
【讨论】:
我认为我试图用一种不好的方法来解决它,正如https://stackoverflow.com/a/7263047/1081568 中所述,配置必须在可执行应用程序中,而不是在库类中。
为了解决这个问题,我在我的属性设置库中创建了一个类,它使用 System.Configuration.ConfigurationManager.AppSettings["NameOfSetting"] 读取我的 web/app.config 的配置
【讨论】: