不复杂的Autofac注入

private static void SetAutofacWebAPI()
        {
            var builder = new ContainerBuilder();

            #region 配置注册方法
            string dataType = ConfigurationManager.AppSettings["dataBaseType"].ToString().ToLower();
            //var data = Assembly.Load("Model");//加载特定程序集
            var data2 = Assembly.Load("MvcAdmin.Service");//加载特定程序集
            switch (dataType)
            {
                case "mssql":
                    builder.RegisterAssemblyTypes(data2)
                        .Where(a => a.FullName.Contains("MvcAdmin.Service.MSSQLServer")).AsImplementedInterfaces();
                    break;
                case "mysql":
                    builder.RegisterAssemblyTypes(data2)
                        .Where(a => a.FullName.Contains("MvcAdmin.Service.MySQLServer")).AsImplementedInterfaces();
                    break;
                default:
                    //builder.RegisterAssemblyTypes(data)
                    //    .Where(a => a.FullName.Contains("Model.MYSQL")).AsImplementedInterfaces();
                    builder.RegisterAssemblyTypes(data2)
                        .Where(a => a.FullName.Contains("MvcAdmin.Service.MySQLServer")).AsImplementedInterfaces();
                    break;
            }
            #endregion

            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

        }

看得出,去就是在web.config中加了一个数据库的选择,不加的话也会有默认的。之前有人说我用web.config配置太复杂了,所有出这篇。

复杂的这篇http://www.cnblogs.com/RainbowInTheSky/p/4531786.html

上面的代码我在之前开源的小后台中有使用,地址:http://code.taobao.org/p/MvcAdmin/src/可以去看看里面的启动项代码

另外在附上Autofac入门:

http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html(控制台演练)

http://www.cnblogs.com/jiagoushi/p/4084145.html(属性注入)

http://www.cnblogs.com/n-pei/archive/2013/01/24/2875674.html(mvc演练)

时间: 2024-10-10 04:33:06

不复杂的Autofac注入的相关文章

autofac 注入普通服务和WCF服务

using Autofac;using Autofac.Builder;using Autofac.Core; //实现Autofac扩展 public static AutofacRegisterWcf { public static IRegistrationBuilder<TServiceContract, SimpleActivatorData, SingleRegistrationStyle> RegisterWcfServiceContract<TServiceContrac

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=

.net Core 2.*使用autofac注入

创建项目 1.创建一个.net core 项目 2.创建一个类库 2.1创建interface文件夹 2.2创建Service文件夹 好了给大家看项目目录 对的.我创建了一个IUserService和一个UserService 然后给大家贴一下代码 using System; using System.Collections.Generic; using System.Text; namespace AutofaceTest.Service.Interface { public interfac

autofac 注入中i遇到的泛型传参问题

using Autofac; using IService; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using TT.Service.Interface; using TT.Service.Realize; namespace InjectionServe

autofac 注入生命周期

创建实例方法 1.InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例.这也是默认的创建实例的方式. 官方文档解释:Configure the component so that every dependent component or call to Resolve() gets a new, unique instance (default.) 2.InstancePerLifetimeScope 在一个生命周期域中,每一个依赖或调用创建一个单一的共享的

Autofac 依赖注入 ASP.NET MVC5 插件机制中插件的简单实现

一.前言 由于项目业务复杂,创建了多个插件并把他们放在了不同的项目中,项目使用AutoFac做的IOC:但是主项目可以注入,插件注入失败, 没有为该对象定义无参数的构造函数.下面就一步一步注入插件项目. 二.新建带有插件的项目 参考: ASP.NET MVC5 插件化机制简单实现 项目结构如下图: 三.建立DomainServices类库 新建一个ITestService接口,代码如下: namespace DomainServices { public interface ITestServi

autofac依赖注入MVC5和webapi2

终于把丢了好久的MVC捡起来,虽然有些许印象,但是还需要重新学习. 很多书本中都提到依赖注入,控制反转等概念,这些都是为了实现松耦合层.组件和类目的. 常见的是使用Repository类分离Controller和Model的直接联系.而为了解除Repository类和Controller的紧密联系,通常不是直接定义Repository类并实例化,而是通过Controller的构造方法注入指定的Repository. 1 public class ValuesController : ApiCon

NopCommerce使用Autofac实现依赖注入

NopCommerce的依赖注入是用的AutoFac组件,这个组件在nuget可以获取,而IOC反转控制常见的实现手段之一就是DI依赖注入,而依赖注入的方式通常有:接口注入.Setter注入和构造函数注入. NopCommerce将所有和Autofac注入相关的工作都放到了EngineContext中,在Global.asax的Application_Start函数的第一句代码即是: //initialize engine context EngineContext.Initialize(fal

ASP.NETCore使用AutoFac依赖注入

实现代码 1.新建接口类:IRepository.cs,规范各个操作类的都有那些方法,方便管理. using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; namespace CMS.Entity.Interfaces { public interface IRepository<T> where T:class { /