大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > autofac使用详解

autofac使用详解(2)

关键词:autofac使用详解  阅读(4817) 赞(12)

[摘要]本文是对autofac使用笔记的讲解,对学习ASP.NET编程技术有所帮助,与大家分享。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using Autofac;
using Autofac.Integration.Mvc;
using Autofac.Integration.WebApi;

namespace WebApiIoc.App_Start
{
    public static class autofaconfig
    {
        public static void Initialize(HttpConfiguration config)
        {
            Initialize(config, RegisterServices(new ContainerBuilder()));//初始化容器
        }

        public static void Initialize(HttpConfiguration config, IContainer container)
        {
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);//注册api容器
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//注册MVC容器
        }

        private static IContainer RegisterServices(ContainerBuilder builder)
        {
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());//注册api容器的实现

            builder.RegisterControllers(Assembly.GetExecutingAssembly());//注册mvc容器的实现


            builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())//查找程序集中以services结尾的类型
                .Where(t => t.Name.EndsWith("Services"))
                .AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())//查找程序集中以Repository结尾的类型
           .Where(t => t.Name.EndsWith("Repository"))
           .AsImplementedInterfaces();

            return builder.Build();//返回容器
        }
    }
}

 这个是autofac的配置文件。



相关评论