基本信息
源码名称:插件式MVC项目源码下载
源码大小:21.76M
文件格式:.zip
开发语言:C#
更新时间:2016-02-19
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

1、自定义视图引擎 

2、插件式MVC项目 
3、IOC autofac 
4、mvc5.0

using System.Linq;
using System.Web;
using System.Reflection;
using System.Web.Mvc;
using System.IO;
using Autofac;
using Autofac.Integration.Mvc;
//using AutofacMvcPluginDemo.Services;

namespace AutofacMvcPluginDemo.Web
{
    public class AutoFacBootStrapper
    {
        public static void AutoFacInit()
        {
            var builder = new ContainerBuilder();

            //注册DomainServices
            var services = Assembly.Load("AutofacMvcPluginDemo.Services");
            builder.RegisterAssemblyTypes(services, services)
              .Where(t => t.Name.EndsWith("Service"))
              .AsImplementedInterfaces().PropertiesAutowired();

            //实现插件Controllers注入
            var assemblies = new DirectoryInfo(
                     HttpContext.Current.Server.MapPath("~/Plugins/"))
               .GetFiles("*.dll")
               .Select(r => Assembly.LoadFrom(r.FullName)).ToArray();
            foreach (var assembly in assemblies)
            {
                builder.RegisterControllers(assembly).PropertiesAutowired().InstancePerRequest();
            }
            
            //注册主项目的Controllers
            builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();

            var container = builder.Build();

            var beginLifetimeScope = container.BeginLifetimeScope();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }
}