Пожалуйста, прости мое невежество, но я очень новичок в МОК и NinJect.Я искал высокие и низкие для легко понятных решений, но до сих пор они ускользали от меня.
Пока у меня есть следующее, и все работает как ожидалось:
private class StandardModule : NinjectModule
{
public override void Load()
{
Bind<ILog>().To<NLogLogger>(); // Use NLog
Bind<IMyEntityFrameWorkRepository().To<MyEntityFrameWorkRepository>();
}
}
MyEntityFrameWorkRepository затем создает егособственный EF DbContext через строку подключения, объявленную в app / web.config:
public class MyDbContext : DbContext
{
public MyDbContext() : base("MyAppConfig")
{
}
........
}
ОДНАКО !!Моя цель примерно такая: я понимаю, что этот синтаксис "бессмыслица" (и я думаю , возможно, мне придется и IOC MyDbConext тоже), но я надеюсь, что "псевдокод" передает мое желание:
private class StandardModule : NinjectModule
{
public override void Load()
{
Bind<ILog>().To<NLogLogger>(); // Use NLog
string mySqlConnectionString = MyApp.GetCommandLineArgument("sqlconn"); // "Data Source=..."
Bind<IMyEntityFrameWorkRepository().To<MyEntityFrameWorkRepository>(mySqlConnectionString);
}
}
.................
public class MyDbContext : DbContext
{
public MyDbContext( string sqlConnectionString) :
base(sqlConnectionString) // will accept a standard SQL connection string
{
}
........
}
Я был бы очень признателен за отзывы от экспертов IOC / NinJect, поскольку я уверен, что любой «шаблон» может быть очень полезен в других сценариях.