zoukankan      html  css  js  c++  java
  • Autofac 注入Asp.Net Webapi And MVC

    Autofac具有解耦、管理生命周期等等好处,本文仅仅实现一个简单的控制器注入。

    1、新建Asp.Net WebApi  应用程序(我用的是VS2013)。

    2、通过Nuget下载如下三个packet。

    1   <package id="Autofac" version="3.5.2" targetFramework="net45" />
    2   <package id="Autofac.Mvc5" version="3.3.3" targetFramework="net45" />
    3   <package id="Autofac.WebApi2" version="3.4.0" targetFramework="net45" />

    3、新建一个类管理注入

        public class ContainerConfig
        {
            public static void Register(HttpConfiguration config)
            {
                var builder = new ContainerBuilder();
    
                builder.RegisterApiControllers(Assembly.GetExecutingAssembly());//注册api容器的实现
                builder.RegisterControllers(Assembly.GetExecutingAssembly());//注册mvc容器的实现
                //ILog 接口的注入
                builder.RegisterType<LogOne>().As<ILog>();
                builder.RegisterType<LogTwo>().Named<object>("logTwo").As<ILog>();//注册参数名为logTwo的Ilog类型参数。Named<T> 这个T不知道起到什么作用,在这里object、LogTwo和ILog均可以。
    
                IContainer container = builder.Build();
                config.DependencyResolver = new AutofacWebApiDependencyResolver(container);//注册api容器需要使用HttpConfiguration对象
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//注册MVC容器
            }
        }

    4、在WebApiConfig中调用ContainerConfig.Register 并传入参数。

    5、上面就对Controller进行的注入托管。在Controller中我们可以添加我们需要的参数了。

        public class ValuesController : ApiController
        {
            public ValuesController(ILog logTwo, ILog log)
            {
                if (logTwo is LogTwo && log is LogOne)
                {
    
                }
            }
        }
  • 相关阅读:
    python3 使用opencv 画基本图形
    python 打印 九九表
    Python Date 1–Hello world print
    Linux下 Nginx+vsftpd搭建FTP服务器详细步骤
    Linux 开启端口命令
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK Maven异常解决方案
    React Fullpage
    Mint-UI组件 MessageBox为prompt 添加判断条件
    简易搭建本地静态服务器
    Mint-UI Picker 三级联动
  • 原文地址:https://www.cnblogs.com/CanFly/p/4303900.html
Copyright © 2011-2022 走看看