Ran*_*dan 4 c# dependency-injection autofac asp.net-core-mvc asp.net-core
我在ASP.net Core中创建了一个示例项目使用了四个层,如下所示
我还在我的API项目中的startup.cs中实现了依赖注入.它的工作完美.
services.AddTransient<IUserRepository, UserRepository>();
Run Code Online (Sandbox Code Playgroud)
我有两个问题要问.
是否可以在我的Infrastructure层中进行依赖注入,而不是在API层中?如果是的话,你能指导我怎么做吗?
如果我错了,请纠正我,如果Asp.Net Core默认具有依赖注入,那么我们不需要Autofac(或类似的第三方DI插件).对?让我重新解释一下这个问题.在Asp Core中使用Autofac有什么用?
任何意见将是有益的.
谢谢.
使用Configure方法为您的Infrastructure层提供一个Config类,该方法需要在其签名中使用IServeCollection,如下所示:
public static class InfrastructureConfiguration
{
public static void Configure(IServiceCollection services)
{
}
}
Run Code Online (Sandbox Code Playgroud)
您可以从Startup类中的ConfigureServices方法调用此Configure方法.
在配置方法中,您可以连接所需的内容,例如,您可以使用MyAwesomeInfraClass:
public static class InfrastructureConfiguration
{
public static void Configure(IServiceCollection services)
{
services.AddTransient<MyAwesomeInfraClass>();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以将MyAwesomeInfraClass注入任何您想要的位置,例如在控制器中,如下所示:
public class HomeController : Controller
{
private readonly MyAwesomeInfraClass _myAwesomeInfraClass;
public HomeController(MyAwesomeInfraClass myAwesomeInfraClass){
_myAwesomeInfraClass = myAwesomeInfraClass;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |