对象引用未设置为对象的实例,接口

时间:2013-08-11 17:11:06

标签: asp.net-mvc-4 razor

我知道这是最常见的错误之一,但我真的很难绕过它。 我的控制器上有一个属性:     private readonly ISelectListFactory _selectFactory; 和一个调用以填充viewbag的方法     private void PopulateLists() { var continent = _selectFactory.GetItems(); } 和界面

public interface ISelectListFactory
{
    IEnumerable<SelectListItem> GetItems();

}

在控制器构造函数中我有以下内容:

public LocationController(ISelectListFactory selectFactory)
    {
        _selectFactory = selectFactory;
     }

但我收到此错误对象引用未设置为对象的实例,并且不确定如何克服它。

此致

1 个答案:

答案 0 :(得分:1)

确保您已在某处实例化此_selectFactory变量。例如:

_selectFactory = new SomeConcreteSelectListFactory();

或者如果您正在使用依赖注入,您可以配置您的DI框架以将其注入构造函数:

public class HomeController: Controller
{
    private readonly ISelectListFactory _selectFactory;
    public HomeController(ISelectListFactory selectFactory)
    {
        _selectFactory = selectFactory;
    }

    ... some controller actions where you could use the _selectFactory field
}