我一直在寻找一段时间。
我对依赖注入并不陌生,并且在多个项目 MVC 等中使用过StructureMap,但我想尝试一下 Ninject,以免错过乐趣。
我正在尝试将Ninject与我正在更新的现有网络应用程序一起使用。
我在 Ninject 提供的博客和 wiki 上找不到,说实话我有点不耐烦所以可能错过了,而且 google 的前几页似乎已经过时或谈论将 MVC 与 Ninject 一起使用。
到目前为止,我有以下内容并且它有效,但我希望有人能指出一个不那么侵入性的选项,关于将 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; }
在一页上,其余的都很神奇。
干杯