我有问题.我需要在.Net Core(C#)中编写一个使用app.config的程序,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="custom" type="ConfigurationSample.CustomConfigurationSection, ConfigurationSample"/>
</configSections>
<connectionStrings>
<add name="sampleDatabase" connectionString="Data Source=localhost\SQLExpress;Initial Catalog=SampleDatabase;Integrated Security=True"/>
</connectionStrings>
<appSettings>
<add key="sampleApplication" value="Configuration Sample"/>
</appSettings>
<custom>
<customConfigurations>
<add key="customSample" name="Mickey Mouse" age="83"/>
</customConfigurations>
</custom>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我写道:
string connectionString = ConfigurationManager.ConnectionStrings["sampleDatabase"].ConnectionString;
Console.WriteLine(connectionString);
// read appSettings configuration
string appSettingValue = ConfigurationManager.AppSettings["sampleApplication"];
Console.WriteLine(appSettingValue);
Run Code Online (Sandbox Code Playgroud)
它是来自互联网的例子,所以我认为会工作,但我得到例外:
System.Configuration.ConfigurationErrorsException: 'Error Initializing the configuration system.'
Inner Exception
TypeLoadException: Could not load type 'System.Configuration.InternalConfigurationHost' from assembly 'CoreCompat.System.Configuration, Version=4.2.3.0, Culture=neutral, PublicKeyToken=null' because the method 'get_bundled_machine_config' has no implementation …Run Code Online (Sandbox Code Playgroud) 我认为这很简单,但我找不到答案.
我正在使用远程处理,我想在app.config中存储RemotingConfiguration.当我打电话时,RemotingConfiguration.Configure我必须提供远程信息所在的文件名.所以......我需要知道当前配置文件的名称.
目前我正在使用这个:
System.Reflection.Assembly.GetExecutingAssembly().Location + ".config"
Run Code Online (Sandbox Code Playgroud)
但这仅适用于Windows应用程序,不适用于Web应用程序.
是不是有任何类可以为我提供当前配置文件的名称?
是否可以将整个App.Config文件重定位到自定义路径?
配置文件与exe文件位于同一文件夹中似乎有点奇怪,Windows的新approcah将所有程序设置保存在c:\ ProgramData和all中.
我们的另一个要求是以编程方式指定在哪里找到app.config文件.这样做的原因是我们从同一个exes生成不同的服务实例,并希望将每个服务的app.config存储在c:\ ProgramData \\下该服务的settings文件夹中.