c# - Ninject 字段注入(inject)在构造函数类中不起作用

标签 c# asp.net-mvc inversion-of-control ninject

在 C# MVC 项目中,我将 Ninject 用于 IoC 模式,当我使用构造函数注入(inject)时它工作正常没有任何问题但是当我将它用作字段注入(inject)时,_orderNotification 发生 NULL 引用异常。

public class ShopManager
{
    [Inject]
    private IOrderNotification _orderNotification;

    public ShopManager(string shopName)
    {
        //Do somethings
    }

    public int GetNotifyCount()
    {
        return _orderNotification.Count();
    }
}

我还在 NinjectWebCommon 中注册了服务,

kernel.Bind<IOrderNotification>().To<OrderNotification>();

Ninject 版本为 3.0

最佳答案

试试这个:

  public IOrderNotification _orderNotification;

  public IOrderNotification OrderNotification
        {
            get
            {
                return _orderNotification ??
                       (_orderNotification = DependencyResolver.Current.GetService<IOrderNotification>());
            }
            set { _orderNotification = value; }
        }

你也可以在没有构造函数的情况下使用它:

public class ShopManager
{
    [Inject]
    public IOrderNotification OrderNotification { get; set; }

    public int GetNotifyCount()
    {
        return OrderNotification.Count();
    }
}

关于c# - Ninject 字段注入(inject)在构造函数类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892702/

相关文章:

c# - 响应式框架 Hello World

c# - 使用 WebBrowser 类时奇怪的弹出行为

Javascript/jQuery 组和排序组

asp.net-mvc - mvc中的反向代理

c# - .NET Framework 中的控制反转和依赖注入(inject)

C# - 检测人脸和裁剪图像

c# - CRM 使用 C# 将 OwnerId 分配给事件

javascript - 将数据从 ASp.NET MVC Controller 传递到 JavaScript 函数

dependency-injection - 带有 funq 的 servicestack - 按照惯例 Autowiring

c# - 使用 IoC 将依赖项注入(inject)基类和子类?