Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection ASP.NET核心:将DbContext传递到单独类库的正确模式?_Dependency Injection_Repository_Asp.net Core Mvc - Fatal编程技术网

Dependency injection ASP.NET核心:将DbContext传递到单独类库的正确模式?

Dependency injection ASP.NET核心:将DbContext传递到单独类库的正确模式?,dependency-injection,repository,asp.net-core-mvc,Dependency Injection,Repository,Asp.net Core Mvc,这确实是一个关于推荐模式的问题 我使用ASP.NET Core 2.0并使用依赖项注入来允许我的控制器和其他类通过类构造函数访问IMyDatabaseRepositor 我在单独的程序集中还有几个其他项目。我正在考虑允许这些其他项目也做一些存储库工作。我们真正讨论的是提供对现有DbContext的访问 我应该以某种方式将IMyDatabaseRepository实例传递给其他项目类中的方法,还是这些类应该简单地实例化它们自己的IMyDatabaseRepository并为数据库和DI执行它们自己

这确实是一个关于推荐模式的问题

我使用ASP.NET Core 2.0并使用依赖项注入来允许我的控制器和其他类通过类构造函数访问IMyDatabaseRepositor

我在单独的程序集中还有几个其他项目。我正在考虑允许这些其他项目也做一些存储库工作。我们真正讨论的是提供对现有DbContext的访问

我应该以某种方式将IMyDatabaseRepository实例传递给其他项目类中的方法,还是这些类应该简单地实例化它们自己的IMyDatabaseRepository并为数据库和DI执行它们自己的启动和连接字符串

我不确定其他项目类是否也可以使用IServiceCollection从我的主ASP.NET核心web应用程序获取DI实例


有什么想法吗?

库不应该组成对象图,应该


这意味着在库中只需使用构造函数注入,而在启动类中则注册所有库中的所有组件。

Steven,你是对的。这就像魔术一样。我只是在我单独的类库中使用了普通的依赖项注入,考虑到它们是在web应用程序启动时执行的,注入就起作用了。真的很酷。