C# 提供程序配置的自定义配置文件
我正在构建一个自定义提供程序,希望知道如何为我的提供程序指定一个不同的配置文件(例如:MyProvider.Config),以便从中选择配置。默认情况下,它使用Web.Config 我可以在MyProviderConfiguration类中指定自定义配置文件的路径吗 示例:C# 提供程序配置的自定义配置文件,c#,asp.net,provider,C#,Asp.net,Provider,我正在构建一个自定义提供程序,希望知道如何为我的提供程序指定一个不同的配置文件(例如:MyProvider.Config),以便从中选择配置。默认情况下,它使用Web.Config 我可以在MyProviderConfiguration类中指定自定义配置文件的路径吗 示例: internal class MyProviderConfiguration : ConfigurationSection { [ConfigurationProperty("providers")]
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;
}
}
}
我不太确定你想做什么。如果只想从其他位置加载配置文件,可以执行以下操作:
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = "<config file path>";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
MyProviderConfiguration customConfig = (MyProviderConfiguration)config.GetSection("
ExeConfigurationFileMap configFileMap=newexeconfigurationfilemap();
configFileMap.ExeConfigFilename=“”;
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>
如果这无助于进一步澄清您的问题。为了澄清,我不想编辑Web.Config,因为管理员用户可以在网站上编辑提供程序配置。如果我将提供程序配置存储在Web.config中,则当有人编辑提供程序配置时,网站将被重述。我想我可以使用您的…configSource=“configFile.config”。。。解决方案我假设在编辑configFile.config时不会重新启动站点。感谢您对此进行调查。没错,编辑单独的文件不会导致web应用程序重新启动。