しばらく探していました。
私は依存性注入に不慣れではなく、MVCなどのいくつかのプロジェクトでStructureMapを使用しましたが、楽しみを逃さないように、Ninjectを試してみたいと思いました。
最新のWebアプリでNinjectを使用しようとしています。
Ninjectが提供するブログやwikiで見つけることができませんでした。正直に言うと少し焦りがちなので、見逃している可能性があります。Googleの最初の数ページは古くなっているか、NinjectでMVCを使用することについて話しているようです。
これまでのところ、次のように機能しますが、ServiceModuleをカーネルに呼び出し、Webアプリから目的のバインドを使用してプロパティを挿入することに関して、誰かが邪魔にならないオプションを指摘してくれることを期待していました。
私がこれまでに持っているのはServiceModuleです。
public class ServiceModule : NinjectModule
{
public override void Load()
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
Bind<IPreRegistrationService>().To<PreRegistrationService>()
.WithConstructorArgument("connectionString",connectionString);
}
}
次に、私のページでプライベート変数を定義しました。
private IPreRegistrationService xfemPreRegistrationService = null;
次に、ページ読み込みイベントで:
IKernel kernel = new StandardKernel(new ServiceModule());
xfemPreRegistrationService = kernel.Get<IPreRegistrationService>();
これは機能しますが、私が定義するのは次のフェーズに進むことです。
[Inject]
public IPreRegistrationService xfemPreRegistrationService { get; set; }
ページ上にあり、残りは魔法です。
乾杯