pro*_*nis 5 c# webforms ninject
我是Ninject的新手,我需要一些帮助才能继续前进.
我有一个由web.form(演示文稿)和各种其他类库项目组成的解决方案.
在NinjectWebCommon cs文件中的web.form应用程序中,我有以下内容
kernel.Bind<HttpContext>()
.ToMethod(ctx => HttpContext.Current).InThreadScope();
kernel.Bind<HttpContextBase>()
.ToMethod(ctx => new HttpContextWrapper(HttpContext.Current)).InTransientScope();
kernel.Bind<MPIBE.DESTINATION.CORE.SiteContext>()
.ToMethod(ctx => new MPIBE.DESTINATION.CORE.SiteContext(
new HttpContextWrapper(HttpContext.Current)
));
Run Code Online (Sandbox Code Playgroud)
我想获取一个类的实例(遵循构造函数)
public SessionUtilities(SiteContext siteContext)
{
_siteContext = siteContext;
}
Run Code Online (Sandbox Code Playgroud)
我注意到我只能从web.forms应用程序获取实例,而我无法从其他项目(类库)获取.这有意义吗?
我试图通过属性注入获取实例
[Inject]
public SessionUtilities _sessionUtilities { get; set; }
Run Code Online (Sandbox Code Playgroud)
sha*_*p00 11
我怀疑包含你的_sessionUtilities属性的类是用new而不是通过Ninject 创建的.
_sessionUtilities如果包含的实例也是由Ninject创建的,Ninject 只会注入你的属性,因为它是使用kernel.Get()或者因为它本身被注入而创建的.