apiController に次のメソッドがあります。
public IEnumerable<something> GetData(DataProvider dataProvider)
{
return dataProvider.GetData();
}
必要なのは、JavaScript からこのメソッドを呼び出して、DataProvider 派生型のパラメーターを渡すことです。「FirstProvider」などの文字列を渡すことでこれを処理し、GetData() メソッドに N 個の if を記述して、適切な型のインスタンスを作成します。
しかし、次のような web.config ファイルに書き込む方法はありますか?
<DataProviders>
<type = FirstDataProvider, alias = "FirstProvider">
<type = SecondDataProvider, alias = "SecondProvider">
</DataProviders>
getData メソッドを次のように変更します。
public IEnumerable<something> GetData(string dataProviderAlias)
{
// get provider type by it's alias from web congfig,
// then instantiated and call:
return dataProvider.GetData();
}
そして、そのエイリアスで型を見つけてインスタンス化しますか?
注:以下の回答を受け入れたので、正しい方向に向けられましたが、msdnはそれIConfigurationSectionHandler
が非推奨であると言います。
そこで、代わりにConfigurationSection
, ConfigurationElementCollection
,ConfigurationElement
クラスを使用して、カスタム構成セクションを作成しました。