一、下载相关类库引用

  install-package Autofac

  install-package Autofac.Mvc4

  install-package Autofac.WebApi2

二、配置autofac

 public class AutofacUtil
{
/// <summary>
/// Autofac容器对象
/// </summary>
private static IContainer _container; /// <summary>
/// 初始化autofac
/// </summary>
public static void InitAutofac()
{
var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetCallingAssembly());
builder.RegisterApiControllers(Assembly.GetCallingAssembly()); //配置接口依赖
builder.RegisterInstance<IDbConnection>(DBFactory.CreateConnection()).As<IDbConnection>();
builder.RegisterGeneric(typeof(GenericRepository<>)).As(typeof(IGenericRepository<>));
//注入仓储类
builder.RegisterAssemblyTypes(Assembly.Load("Demo.Repository"))
.Where(x => x.Name.EndsWith("Repository"))
.AsImplementedInterfaces(); _container = builder.Build(); //设置MVC依赖注入
DependencyResolver.SetResolver(new AutofacDependencyResolver(_container)); //设置WebApi依赖注入
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver((IContainer)_container);
} /// <summary>
/// 从Autofac容器获取对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T GetFromFac<T>()
{
return _container.Resolve<T>();
}
}

三、注册autofac

  在Global.asax全局文件中Application_Start方法添加代码

AutofacUtil.InitAutofac();

四、使用案例

 public class CodeController : BaseApiController
{
private readonly ISMCodeRepository _smCodeRepository;
public CodeController(ISMCodeRepository smCodeRepository)
{
_smCodeRepository = smCodeRepository;
} /// <summary>
/// 获取数据字典数据列表
/// </summary>
/// <param name="codeTypeNo">数据字典字典类型代码</param>
/// <returns></returns>
[HttpPost]
public ApiResult GetCodeList(SMCodeType codeTypeEntity)
{
var result = _smCodeRepository.GetCodeList(codeTypeEntity.CodeTypeNo);
return new ApiResult() { Data = result.Select(x => new { x.CodeNo, x.CodeName }) };
}
}

c# autofac结合WebApi的使用的更多相关文章

  1. AutoFac+MVC+WebApi源码----我踩过的坑

    发现网上关于AutoFac的Demo源码比较少,综合MVC和WepApi的更少.所以贴出源码 WebApi项目(MVC4不需要引用,历史遗留问题,人懒没删) 建项目 新建类库IAutoFacDal(接 ...

  2. AutoFac实现WebAPI依赖注入(EF以及Mysql)

    什么是依赖注入? 我们以实际的例子来加以介绍 实体如下 public class Product { public int ID { get; set; } public string Name { ...

  3. autofac 在webapi中拿到当前request的scope

    https://stackoverflow.com/questions/31321386/autofac-web-api-get-current-scope   Unless you are usin ...

  4. Autofac - MVC/WebApi中的应用

    Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一.目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL ...

  5. Autofac 同时支持MVC 与Webapi

    1.引用 using Autofac; using Autofac.Integration.Mvc; using Autofac.Integration.WebApi; 2.在Global中的Appl ...

  6. 在MVC5和webAPI下是用Autofac依赖注入

    很多书本中都提到依赖注入,控制反转等概念,这些都是为了实现松耦合层.组件和类目的. 常见的是使用Repository类分离Controller和Model的直接联系.而为了解除Repository类和 ...

  7. autofac + owin + webform + mvc + webapi集成demo

    http://git.oschina.net/shiningrise/AutofacOwinDemo using Microsoft.Owin; using Owin; using System.We ...

  8. webapi框架搭建-依赖注入之autofac

    前言 c#的依赖注入框架有unity.autofac,两个博主都用过,感觉unity比较简单而autofac的功能相对更丰富(自然也更复杂一点),本篇将基于前几篇已经创建好的webapi项目,引入au ...

  9. webapi 使用Autofac 开发经历

    2018/4/6 号 早上五点..被手机震动吵醒. 之后直接打开电脑,打算再加强下我自己的webapi这套东西. 虽然三年的工作经验接触了N多框架和各种风格的开发方式,但是让我自己来搞一套实在不会搞, ...

随机推荐

  1. sealos2.0使用教程,最简单kubernetesHA方案

    kubernetes集群三步安装 概述 本文教你如何用一条命令构建k8s高可用集群且不依赖haproxy和keepalived,也无需ansible.通过内核ipvs对apiserver进行负载均衡, ...

  2. sentos中bonding(网卡绑定技术)1

    一.GRUB添加kernel参数 1.# vim /etc/sysconfig/grubGRUB_CMDLINE_LINUX="......      net.ifnames=0" ...

  3. codeforces 327 A Ciel and Dancing

    题目链接 给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1. 这里要注意很多细节 比如全为1,要求必须翻转,这时候我们 ...

  4. JWT token 跨域认证

    JSON Web Token(缩写 JWT),是目前最流行的跨域认证解决方案. session登录认证方案:用户从客户端传递用户名.密码等信息,服务端认证后将信息存储在session中,将sessio ...

  5. nginx lua集成kafka

    NGINX lua集成kafka 第一步:进入opresty目录 [root@node03 openresty]# cd /export/servers/openresty/ [root@node03 ...

  6. Java集合系列(一)List集合

    List的几种实现的区别与联系 List主要有ArrayList.LinkedList与Vector几种实现. ArrayList底层数据结构是数组, 增删慢.查询快; 线程不安全, 效率高; 不可以 ...

  7. 非web下的PowerMockito单元测试

    一.介绍 PowerMockito 可以用来 Mock 掉 final 方法(变量).静态方法(变量).私有方法(变量).想要使用 PowerMockito Mock掉这些内容,需要在编写的测试类上使 ...

  8. 自定义FutureTask实现

    FutureTask FutureTask是Future的实现,用来异步任务的获取结果,可以启动和取消异步任务,查询异步任务是否计算结束以及获取最终的异步任务的结果.通过get()方法来获取异步任务的 ...

  9. 分享我的GD32F450的IAP过程

    最近一个项目使用GD32F450VI+ESP8266需要做远程升级,基本参考正点原子IAP的那一章节,但是在GD32F450上却遇到了问题,无法跳转,然后使用正点原子的开发板stm32f429,以及s ...

  10. eclipse插件——maven

    项目开发中遇到的问题 都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行? 为什么在我的机器上可以正常打包,而配置管理员却打不出来? 项目组加入了新的人员,我要给他说明编译环境如何设 ...