Jack M
Jack M

Reputation: 2574

Object reference not set to an instance of an object, Interface

I know that this is one of the most encountered error but I am really struggling to get around it. i have a property on my Controller: private readonly ISelectListFactory _selectFactory; and a method that called to populate the viewbag private void PopulateLists() { var continent = _selectFactory.GetItems(); } and the interface

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

}

and in the controller constructor I have the following:

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

but I am getting this error Object reference not set to an instance of an object and not sure how to overcome it.

Regards

Upvotes: 0

Views: 5069

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1038710

Make sure you have instantiated this _selectFactory variable somewhere. Like for example:

_selectFactory = new SomeConcreteSelectListFactory();

or if you are using dependency injection you might configure your DI framework to inject it into the constructor:

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

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

Upvotes: 1

Related Questions