2

JsonSettingsProviderXmlSettingsProviderで実装されている場合など、IOCとの特定のインターフェイス(複数のNinjectを使用しますが一般的に回答できます)に複数のデータプロバイダを登録するにはどうすればいいですか?同じインターフェイスのMVC多重登録を使用するIOC

XMLからJSONへのデータ(この場合は設定)を移行しており、アプリケーションで同時に使用する必要があります(どちらか一方を選択するのではなく、両方を同時に実行する必要があります)。ですから、私はXMLベースのプロバイダがシリアル化されたものを読み込み、JSONプロバイダをJSONとしてシリアル化する必要があります。うまくいけば、あなたは私が何を意味するかを理解する

kernel.Bind<ISettingsRepository>() 
    .To<XmlSettingsProvider>() 
    .InRequestScope(); 

public class WebSettings 
{ 
    [Inject] 
    private ISettingsRepository _repository; 

    private void Load() 
    { 
     _repository = DependencyResolver.Current 
      .GetService<ISettingsRepository>(); 

     ... 

今私は、次のような登録を持っていると思います。

public IUnityContainer RegisterInstance(
    Type t, 
    string name, 
    Object instance, 
    LifetimeManager lifetime 
) 

を、あなたが解決するときに、ちょうど必要なインスタンスの名前を渡します

+0

だけ考えた上でこのスレッドを見ても、それはできませんあなたは、クラスの正しい実装を選択するためにFactoryパターンを使用することができます(JsonSettingsProviderかのどちらかXMLSettingsProvider)、あなたの要件に応じて、条件の下でファクトリメソッドのreturntypeとしてISettingsRepositoryインターフェイスを返します。あなたはどう思いますか? – Dinesh

+0

はい、これは1つのオプションですが、これまでのファクトリを使用していないので、コードサンプルがうまくいくでしょう – mare

答えて

0

私は団結(link on msdn)は、同じタイプの複数の名前付きインスタンスをサポートしています知っています。

関連する問題