I have a set of services that are used to read/write to the database. These get injected into my controllers:
ISystemSettingService _systemSettingService = null;
IStatusTypeService _statusTypeservice = null;
public MyController(
ISystemSettingService systemSettingService,
IStatusTypeService statusTypeservice)
{
_systemSettingService = systemSettingService;
_statusTypeservice = statusTypeservice;
}
So when I need something from _systemSettingService
I can easily get it. Now I also have some static helper classes/functions which I call from MyController
. In these functions I often need access to the services so I can access the DB. e.g. I have a Validate(string userData, ISystemSettingService systemSettingService)
function that accepts some data passed in from the user.
So far, into the Validate
function I have been passing in the _systemSettingService
so I can use it. I'm not sure this is correct.
My question - is my approach correct or, in the Validate
function should I be creating a unity container to Resolve
an instance of my ISystemSettingService
or, as I have been reading about, should my helper class NOT be static, and I should inject ISystemSettingService
into the constructor which will apparently make unit testing easier.
I'm a bit confused! Thanks.