【发布时间】:2013-06-20 19:28:03
【问题描述】:
如果我有一个带有 app.config 文件的类库(我知道这并不理想,请稍等片刻),其中包含使用项目设置选项卡创建的设置值,并按如下方式访问:
Public Shared Function GetMySetting(key As String) As String
Dim value As String = My.Settings.Item(key)
If value = String.Empty Then value = "Setting " & key & " not found."
Return value
End Function
然后我从这样的应用程序中检索设置:
sb.AppendLine("GetMySetting: " & Library.Settings.GetMySetting("SettingC"))
库项目的 app.config 文件中的设置肯定不会复制到应用程序的 app.config 文件中,但我仍然可以从库 app.config 中检索 My.Settings。
所以我在库中添加了一个GetConfigFileName 函数:
Public Shared Function GetConfigFileName() As String
Return AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
End Function
并在应用程序中检索它:
sb.AppendLine("Library Config File: " & Library.Settings.GetConfigFileName)
但这会返回应用程序的配置文件。
我如何确定库在调用 My.Settings... 时从哪个 .config 文件中读取?
或者它们是否被编译到 DLL 中?
【问题讨论】:
-
默认设置可能已编译到 DLL 中 - 我怀疑它会在隐藏的设计器文件中。配置设置应覆盖此默认设置。
-
有点奇怪,我原以为在使用 My.Settings 时无法从库中检索设置
-
您在使用 Visual Studio 吗?如果您全局找到设置键名称(按名称) - 您可能会找到基于代码的版本 - 它可能会被称为
Global.System.Configuration.DefaultSettingValueAttribute -
Settings.Designer.vb文件中有这样一个属性,但是它所在的类(MySettings)继承自ApplicationSettingsBase,必须包含文件处理代码(如果有的话)
标签: vb.net visual-studio app-config