首先,ConfigureManager是我想要的,但它总是使用.config作为文件扩展名。我可以将.config更改为其他字符串吗?
答案 0 :(得分:3)
与@Dave一样,我假设您的意思是应用配置文件。在哪种情况下“不容易”。您可以执行此操作,但它涉及使用定制的AppDomain
生成第二个AppDomainSetup.ConfigurationFile
。老实说,我不认为这是值得的,但是下面的工作(第二次打印"bar"
) - 但首先是一个警告:这将是一个痛苦,特别是像解决路径,证据这样的事情等等。我真的不会打扰......
class Program
{
static void Main(string[] args)
{
Console.WriteLine(ConfigurationManager.AppSettings["foo"]);
if (!args.Contains("run"))
{
AppDomainSetup setup = new AppDomainSetup();
setup.ConfigurationFile = "foo.xml";
AppDomain dmn = AppDomain.CreateDomain("Foo", null, setup);
dmn.ExecuteAssembly(Assembly.GetEntryAssembly().CodeBase,
new string[] { "run" } /* crude exit condition */
);
}
}
}
配置文件foo.xml
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="foo" value="bar"/>
</appSettings>
</configuration>
答案 1 :(得分:1)
您还可以使用自定义部分创建几乎为空的配置文件。然后使用自定义部分的configSource属性指定外部配置文件。此外部文件可以包含您想要的任何扩展名。
从.exe.config文件中提取:
<configuration>
<configSections>
<section name="mappings" type="MappingsSection, [AssemblyName]"/>
<configSections>
<mappings configSource="Mappings.conf" />
从mappings.conf中提取:
<?xml version="1.0" encoding="utf-8" ?>
<mappings>
...
</mappings>
要创建自定义栏目,您可以使用this page