ASP.NET Core中使用Autofac

时间:2023-03-10 02:38:00
ASP.NET Core中使用Autofac

⒈添加相关依赖

Install-Package Autofac

⒉扫描项目接口实现类 

 using Autofac;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text; namespace Unity_Test.Autofac
{
public class AutofacConfig
{
private static Lazy<IContainer> container = new Lazy<IContainer>(() =>
{
var containerBuilder = new ContainerBuilder();
RegisterTypes(containerBuilder);
var container = containerBuilder.Build();
return container;
}); public static IContainer GetConfiguredContainer()
{
return container.Value;
} private static void RegisterTypes(ContainerBuilder containerBuilder)
{ var dataAccess = Assembly.GetExecutingAssembly(); containerBuilder.RegisterAssemblyTypes(dataAccess)
.Where(w => w.Namespace.Contains("Unity_Test"))
.AsImplementedInterfaces();
}
}
}

⒊代码中注入

 using Autofac;
using Autofac.Core;
using System;
using Unity_Test.Autofac; namespace Unity_Test
{
class Program
{
static void Main(string[] args)
{
IService service = AutofacConfig.GetConfiguredContainer().Resolve<IService>();
service.sayHello();
Console.ReadKey();
}
}
}