如何更改配置文件的文件扩展名(c#)

时间:2010-09-08 03:48:22

标签: c#

首先,ConfigureManager是我想要的,但它总是使用.config作为文件扩展名。我可以将.config更改为其他字符串吗?

2 个答案:

答案 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