Rod*_*ler 17 c# settings appsettings .net-2.0
我正在编写一个C#.NET 2.0 .dll,它是一个更大的应用程序的插件.我的模块的visual studio项目有一个app.config文件,该文件被复制到MyProj.dll旁边的MyProj.dll.config.
计划是在部署.dll之后编辑MyProj.dll.config.我试图从修改后的本地文件中读取我的设置.我试图拉出LocalFilesSettingsObject并将其应用程序名称更改为我的.dll,如下所示:
Properties.Settings config = Properties.Settings.Default;
SettingsContext context = config.Context;
SettingsPropertyCollection properties = config.Properties;
SettingsProviderCollection providers = config.Providers;
SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"];
configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name;
config.Initialize(context, properties, providers);
config.Reload();
Run Code Online (Sandbox Code Playgroud)
那不行.我正在努力绕过整个.NET设置混乱.我想要一个配方来完成这项任务.我还想要一个关于如何在.NET 2.0中使用设置的清晰解释(带有示例)的链接
Ric*_*ard 27
您需要自己加载x.dll.config(使用Configuration API).所有自动文件处理(包括.Settings)都与machine.config/y.exe.config/user-settings有关.
要打开命名的配置文件:
System.Configuration.dll组件.System.Configuration创建如下代码:
Configuration GetDllConfiguration(Assembly targetAsm) {
var configFile = targetAsm.Location + ".config";
var map = new ExeConfigurationFileMap {
ExeConfigFilename = configFile
};
return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
}
Run Code Online (Sandbox Code Playgroud)1-在Visual Studio中打开app.config文件
2-"在"配置"标签中添加您的配置标签"appSettings"如下:
<configuration>
<appSettings>
<add key="UserName" value="aaa"/>
<add key="Password" value="111"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
3-代码c#
var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
string userName = appConfig.AppSettings.Settings["UserName"].Value;
string password = appConfig.AppSettings.Settings["Password"].Value;
Run Code Online (Sandbox Code Playgroud)
并且不要忘记为"ConfigurationManager"和"Assembly"添加这2个使用
如果未显示System.Configuration,则必须在"引用"中添加引用"System.Configuration"
4-您可以在下面更新dll的配置: