1.先 NuGet 里 下载 Autofac 的包。与 Autofac.Extensions.DependencyInjection 包。
2.在Program.cs 里添加
using Autofac;
using Autofac.Extensions.DependencyInjection;
builder.Services.AddControllers().AddControllersAsServices();
// 替换内置IOC
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(container =>
{
#region 通过模块化的方式注册接口层和实现层
container.RegisterModule(new AutoFacMode());
#endregion
});
新建一个 AutoFacMode 文件 并继承 Autofac.Module,并重写 Load的方法
代码如下
public class AutoFacMode : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
Assembly interfaceAssembly = Assembly.Load("InterFace");
Assembly serviceAssembly = Assembly.Load("Server");
builder.RegisterAssemblyTypes(interfaceAssembly, serviceAssembly).AsImplementedInterfaces();
}
}
Assembly.Load("InterFace"); 和 Assembly.Load("Server"); 把 InterFace 和 Server 改成自已的接口和服务 项目
新建一个 server 来试试 就行了
这样 Autofac依赖注入就算 配置完成了。