Autofac注入的步骤:
1.在项目UI层新建一个文件夹Dependcy创建一个AutofacConfig类添加一个RegisterAutofac方法
public static void RegisterAutofac() {
// 创建一个容器
var builder = new ContainerBuilder();
Type basetype = typeof(IDenpendecy);
var assemblys = AppDomain.CurrentDomain.GetAssemblies().ToList();
builder.RegisterAssemblyTypes(assemblys.ToArray())
.Where(t => basetype.IsAssignableFrom(t) && t != basetype)
.AsImplementedInterfaces().InstancePerLifetimeScope();
Type repository = typeof(IDenpendecyRepository);
builder.RegisterAssemblyTypes(assemblys.ToArray())
.Where(t => repository.IsAssignableFrom(t) && t != repository)
.AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterControllers(assemblys.ToArray());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
2.在Global.asax中调用方法
//注册Autofac
AutofacConfig.RegisterAutofac();
3.数据访问层创建IRepositor接口文件夹和Repository类文件夹
public interface IAdminInfoRepository:IDenpendecyRepository
{
}
public class AdminInfoRepository:IAdminInfoRepository
{
}
4.业务层创建IService接口文件夹和Service类文件夹
public interface IAdminInfoService: IDenpendecy
{
}
public class AdminInfoService:IAdminInfoService
{
private IAdminInfoRepository adminInfoRepository;
public AdminInfoService(IAdminInfoRepository iadminInfoRepository)
{
adminInfoRepository = iadminInfoRepository;
}
}
5.在控制器AdminController中
public class AdminController : Controller
{
private IAdminInfoService adminInfoService;
public AdminController(IAdminInfoService iadminInfoService)
{
adminInfoService = iadminInfoService;
}
}
本文详细介绍使用Autofac进行依赖注入的步骤,包括配置、接口定义、服务实现及控制器中依赖的注入。通过具体代码示例,展示了如何在项目中有效实施依赖注入,提高代码的可维护性和灵活性。
738

被折叠的 条评论
为什么被折叠?



