まず、私の質問は Web アプリにのみ適用され、Ninject バインディングの大部分を InRequestScope 解決でセットアップする傾向があります。
私は機能を切り替える方法を考えています.1つの考えは、次のように呼び出すことです:
kernel.Rebind<IInterface>().To<RealImplementation>().InRequestScope();
ウェブサイトがまだ稼働中で、スイッチがフリックされている間。その後、機能をオフにすることにした場合は、電話をかけることができます
kernel.Rebind<IInterface>().To<EmptyImplementation>().InRequestScope();
私の考えでは、InRequestScope は「進行中」のコード リクエストを保護しますが、新しいリクエストが新しく切り替えられた機能を取得できるようにします。
これが機能する可能性があるか、それとも私にとってより多くの問題を引き起こすかどうか、経験(またはNinjectのより深い理解)から誰かが知っていますか. 私は MEF を表面的に見てきたので、この場合、Ninject が最適なツールではない場合、MEF が次の寄港地になるでしょう。