質問

私のASP.NET MVC 3アプリケーションでは、NINJECTおよびNINJECT ASP.NET MVC 3統合を使用します。 CreateKernelメソッドを過負荷にしました。

次に、この方法でクエリごとにいくつかの依存関係を設定する必要があります。

if (Language == Language.English)
  //register English language implementations
else if (Language == Language.Russian)
  //register Russain language implementations

Global_Asaxのリクエスト固有の方法のいくつかは、リクエストごとに依存関係を登録するためにninjecthttpapplicatonプロパティの一部にアクセスしようとするのに最適な場所です。カーネルにアクセスし、時代遅れの警告を受けました。「ninjectをサービスロケーターとして使用しないでください」。私は何が間違っているのですか?それを正しく行う方法は?

役に立ちましたか?

解決

言語のような何らかの条件に基づいて実装を変更するには、条件付きバインディングを使用する必要があります。例えば Bind<IFoo>().To<Foo>().When(ctx => Language == Language.English)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top