ASP.NET Core 2.2--第三方依赖注入容器Autofact替换内置IServiceCollection容器
2021-03-21 10:24
标签:cse override services running 原来 provider send col int 一、定制第三方依赖注入容器Autofac 1、nuget引入autofac和 Autofac.Extensions.DependencyInjection 2、注释掉原来的IServiceCollection,ConfigureServices需要返回值IServiceProvider 3、new ContainerBuilder实例化容器 4、注册服务 a、使用containerBuilder.RegisterType注册服务 b、使用containerBuilder.RegisterModule注册服务,通过Module注册 5、返回AutofacServiceProvider 的实例 注册服务 接口 服务 控制器 开始在ConfigureServices里注册ApplePhoneService,当我们访问AutofacDIController,构造AutofacDIController的时候注入了ApplePhoneService,如下图所示 开始在ConfigureServices里通过Module方式注册DogService和SmsService,当我们访问AutofacDIModuleController,构造AutofacDIModuleController的时候注入了DogService和SmsService,如下图所示
二、第三方容器Autofac和内置的容器IServiceCollection冲突吗? 项目结构图
ASP.NET Core 2.2--第三方依赖注入容器Autofact替换内置IServiceCollection容器 标签:cse override services running 原来 provider send col int 原文地址:https://www.cnblogs.com/menglin2010/p/12721413.html #region 原来的IServiceCollection容器
// This method gets called by the runtime. Use this method to add services to the container.
//public void ConfigureServices(IServiceCollection services)
//{
// services.Configure
namespace Self.David.Core.Service.Utility
{
public class CustomAutofacModule : Module
{
///
namespace Self.David.Core.Interface
{
public interface IAnimal
{
void Running();
}
}
namespace Self.David.Core.Interface
{
public interface IMsg
{
void SendMsg();
}
}
namespace Self.David.Core.Interface
{
public interface IPhone
{
void Call();
}
}
namespace Self.David.Core.Service
{
public class ApplePhoneService : IPhone
{
public void Call()
{
Console.WriteLine($"{nameof(ApplePhoneService)}打电话!");
}
}
}
namespace Self.David.Core.Service
{
public class DogService : IAnimal
{
public void Running()
{
Console.WriteLine($"{nameof(DogService)}奔跑!");
}
}
}
namespace Self.David.Core.Service
{
public class SmsMsgService : IMsg
{
public void SendMsg()
{
Console.WriteLine($"{nameof(SmsMsgService)}发送消息!");
}
}
}namespace Self.David.Core.MVC6.Controllers
{
///
///
不会冲突,autofac全权接管了之前IServiceCollection的所有工作
上一篇:httpx
文章标题:ASP.NET Core 2.2--第三方依赖注入容器Autofact替换内置IServiceCollection容器
文章链接:http://soscw.com/index.php/essay/67126.html