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;
}
}