gpt4 book ai didi

c# - 从主视图部分 View 访问 Ninject 对象

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:38 25 4
gpt4 key购买 nike

我试图在我的布局 View 中访问由 ninject 创建的对象,但我不知道如何访问它们。

这里是我到目前为止所尝试的简要概述:-

由服务创建并绑定(bind)它们:

public interface IService 
{
void SomeMethod();
}

public class Service : IService
{
public void SomeMethod
{

}
}

Bind<IService>().To<Service>();

创建一个静态类并使用[Inject]属性:

public static class MasterLayout
{
[Inject]
public static IService Service { private get; set; }

public static void CallSomeMethod();
{
Service.SomeMethod
}
}

每次我从我的主视图或局部 View 调用MasterLayout.CallSomeMethod()时,Service字段总是空的。

这是否可能,或者我是否应该创建一个基本 Controller 并让其他 Controller 继承它,我可以在其中设置这些值以在主视图和部分 View 中使用?有没有更好的方法来实现这一目标?

最佳答案

如果与构造函数注入(inject)一起使用,Ninject 是否有效?

(参见 http://ninject.codeplex.com/wikipage?title=Injection%20Patterns)

有点像

    IUnitOfWork UnitOfWork;

public AccountController(IUnitOfWork unitOfWork)
{
this.UnitOfWork = unitOfWork;
}

你检查过这里吗?

bind to property always return null

当您说“在每个页面上”时,您的意思是“在每个 Controller 上”吗?

如果是,我认为您可以创建一个 BaseController 类,所有 Controller 都应该继承自它。我正在使用这种方法。

关于c# - 从主视图部分 View 访问 Ninject 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787510/

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