提供程序配置的自定义配置文件

时间:2010-06-17 14:52:56

标签: c# asp.net provider

我正在构建一个自定义提供程序,并且想知道如何为我的提供程序指定一个不同的配置文件(例如:MyProvider.Config)以从中选择配置。默认情况下,它使用Web.Config。

我可以在MyProviderConfiguration类中指定自定义配置文件的路径吗?

示例:

internal class MyProviderConfiguration : ConfigurationSection
{
    [ConfigurationProperty("providers")]        
    public ProviderSettingsCollection Providers
    {
        get
        {
            return (ProviderSettingsCollection)base["providers"];
        }
    }

    [ConfigurationProperty("default", DefaultValue = "TestProvider")]
    public string Default
    {
        get
        {
            return (string)base["default"];
        }
        set
        {
            base["default"] = value;
        }
    }
}

谢谢

-Oleg

1 个答案:

答案 0 :(得分:0)

我不太确定你想做什么。如果您只想从其他位置加载配置文件,可以执行以下操作:

ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = "<config file path>";

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

MyProviderConfiguration customConfig = (MyProviderConfiguration)config.GetSection("

configSectionName“);

如果您只想将自定义配置放在单独的文件中,可以执行以下操作:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="myProviderConfiguration" type="Namespace.MyProviderConfiguration, AssemblyName" />
    </configSections>
    <myProviderConfiguration configSource="configFile.config" />
</configuration>

然后你的configFile.config文件将包含:

<?xml version="1.0" encoding="utf-8"?>
<myProviderConfiguration Default="value">
    <Providers>
        <Provider />
    </Providers>
</myProviderConfiguration>

如果这无济于事,您可以进一步澄清您的问题。