我开始在MVC应用程序中使用LightInject,但是对于如何实现DB Context类的实例有点困惑。
我知道我可以通过构造函数注入它...但是,如果必须这样做,LightInject有什么意义呢?
另外,我的应用程序中的DB Context类已经实现了一个接口(IdentityDbContext),因此为存储库创建另一个接口似乎不正确。
DB Context类在构造函数中确实包含以下内容:
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
所以我可以很容易地打电话给:
_context.Create()
在构造函数中-但我的理解是,这将违反SOLID原则。
那么如何使用LightInject创建数据库上下文类的实例?
您可以注册上下文,然后通过构造函数注入将其传递:
在您的ioc配置文件中:
container.Register<Context, Context>(new PerScopeLifetime());
一些服务:
private readonly Context _context;
public BookService(Context context)
{
_context = context;
}
如果要使用接口,请注册一个接口并将其传递到所需的任何地方。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句