.net mvc web api Autofac依赖注入框架-戈多编程
今天自己搭了一套基于三层的依赖注入mvc web api 的依赖注入框架,在此总结下相关配置
1.设置应用程序的.net Framework版本为 4.5
2.通过Nuget 安装autofac包
Install-Package Autofac
Install-Package Autofac.WebApi
3.引用如下命名空间
using Autofac;
using Autofac.Integration.WebApi;
using Autofac.Integration.Mvc;
using System.Web.Mvc;
4.再按照如下代码配置Autofac(分别搭建DAL、BLL、IDAL、IBLL)
public static void Register()
{
var builder = new ContainerBuilder();
HttpConfiguration configuration = GlobalConfiguration.Configuration;
var assemblyList = AppDomain.CurrentDomain.GetAssemblies();
builder.RegisterWebApiFilterProvider(configuration);
//var iServices = Assembly.Load("IOC.IBLL");
//var services = Assembly.Load("IOC.BLL");
//var iRepository = Assembly.Load("IOC.IDAL");
//var repository = Assembly.Load("IOC.DAL");
//builder.RegisterAssemblyTypes(iServices, services)
// .Where(t => t.Name.EndsWith("Service"))
// .AsImplementedInterfaces();
//var test = builder.RegisterAssemblyTypes(iRepository, repository)
// .Where(t => t.Name.EndsWith("Dal"))
// .AsImplementedInterfaces();
builder.RegisterAssemblyTypes(assemblyList)
.Where(t => t.Name.EndsWith("Service") || t.Name.EndsWith("Dal"))
.AsImplementedInterfaces();
builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); //注册所有controller
builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); //注册所有apicontroller
var container = builder.Build();
configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);//注册api容器
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//注册mvc容器
}
5.在Application_Start里调用 AutofacConfig.Register();
6.然后在每一层采用构造函数依赖注入方式。
最新文章
- .NET中的CTS、CLS和CLR
- poj3984迷宫问题 广搜+最短路径+模拟队列
- 类型查找器 ITypeFinder
- TEXT类型
- php投票练习
- Go语言入门: Chapter1
- ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.
- 滚动公告--jq
- Java的基本数据类型大小及其包装类
- Java递归删除目录下所有的txt文件
- 通过更改服务器解决双系统ubuntu时间+8
- C# 动态创建SQL数据库(二)
- oracle本月、上月、去年
- 【aws】
- 将ESXI所有的端口组迁移到分布式交换机的步骤
- LabelRank非重叠社区发现算法介绍及代码实现(A Stabilized Label Propagation Algorithm for Community Detection in Networks)
- BZOJ1555 KD之死
- Mysql 多主一从数据备份
- [转]matlab语言中的assert断言函数
- 编写Nginx启停服务脚本