gpt4 book ai didi

c# - Ninject 属性注入(inject)不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:22:46 24 4
gpt4 key购买 nike

我是 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)
));

我正在尝试获取一个类的实例(在构造函数之后)

public SessionUtilities(SiteContext siteContext)
{
_siteContext = siteContext;
}

我注意到我只能从 web.forms 应用程序中获取实例,而不能从其他项目(类库)中获取。这有什么意义吗?

我正在尝试通过属性注入(inject)获取实例

[Inject]
public SessionUtilities _sessionUtilities { get; set; }

最佳答案

我怀疑包含您的 _sessionUtilities 属性的类是使用 new 而不是通过 Ninject 创建的。

Ninject 只会注入(inject)您的 _sessionUtilities 属性,如果包含的实例也是由 Ninject 创建的,因为它是用 kernel.Get() 创建的,或者因为它本身正在注入(inject)。

关于c# - Ninject 属性注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19091481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com