我正在构建一个自定义提供程序,并且想知道如何为我的提供程序指定一个不同的配置文件(例如: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
答案 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>
如果这无济于事,您可以进一步澄清您的问题。