キャッスルをIoCとして使用しましたが、同じプロジェクトでNhibernate/Castle(IoC)を使用して問題が発生しましたので、Ninjectに移動しました。今の質問に取得するために、私はこのクラスを持っている:Ninject and configuration
class CustomModule : NinjectModule
{
public override void Load()
{
Bind<Interfaces.ICafe>().To <Concrete.Tea>();
}
}
Concrete
は別のプロジェクトであり、Interfaces.ICafe
は別のプロジェクトです。城では、私は開発者にインターフェイスのDLLを与えて、そのインターフェイスを実装する新しい具象を実装してapp.configでそれを設定するように頼んだので、クラス名を実装しても機能します。なぜなら、 app.configなので、もし彼がConcrete.Coffee
のように作ったとしてもそれはうまくいくでしょう。
しかし、Ninjectでは、同じクラス名 "Tea"を使用してコンクリートを作る必要があります。そうでなければ、ハードにコード化されているため動作しません。
私はNinjectを新しくしていて、おそらく何かが紛失していることを知っていますか?
サンプルを提供できますか? – Stacker