3

我正在构建一个自定义提供程序,并且想知道如何为我的提供程序指定不同的配置文件(例如: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;
        }
    }
}
4

1 回答 1

0

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

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

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

MyProviderConfiguration customConfig = (MyProviderConfiguration)config.GetSection("

配置节名");

如果您只想将自定义配置放在单独的文件中,您可以这样做:

<?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>

如果这没有帮助,您可以进一步澄清您的问题。

于 2010-06-29T01:27:40.337 回答