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("

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>

それでも問題が解決しない場合は、質問をさらに明確にしてください。

于 2010-06-29T01:27:40.337 に答える