I am using Ninject with ASP.NET MVC. Basically, I want to pass the protected member _connectionStringBuilder in the BaseController class as a constructor argument to the class SourceCodeManager.
I basically do some processing at the controller level and then I want to pass that to the my various Business layer classes like SourceCodeManager.
I know this sounds a bit funky, but I basically want to pass the same variable _connectionStringBuilder to all of my Business Layer classes.
(I am trying to upgrade a classic ASP application where they store the username and password in cookies!)
public class SourceCodeManager : ParisDataAccessManager, ISourceCodeManager
{
SourceCodeManager(IParisConnectionStringBuilder connectionStringBuilder)
: base(connectionStringBuilder)
{
}
public List<SourceCodeList> GetManualSourceCodes()
{
using (var connection = new SqlConnection(connectionStringManager.GetConnectionString()))
{
connection.Open();
var manualSourcesCodes = connection
.Query<SourceCodeList>("select source_cd, source_desc where feeder_system_cd = 'ME'")
.ToList();
return manualSourcesCodes;
}
}
}
public class BaseController : Controller
{
[Inject]
public IParisConnectionStringBuilder _connectionStringBuilder { get; set; }
// ...
}
I’m not 100% I understand what your question is.
However, if you only want a single instance of IParisConnectionStringBuilder in your whole application, look at registering as a singleton in NInject.
Syntax is something like: