asp.net AutoFac 自動注入

在我這個框架中須要引用一下幾個dll框架

Autofac,Autofac.Configuration,Autofac.Mvc4,Autofac.WebApiide


配置方面我用的是XML文件配置ui

在添加完引用以後,就能夠配置了!下面是配置代碼! 首先要弄清楚,整個MyautoFac.Web的程序入口Global.asax.cs文件中的Application_Start()方法裏
spa

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AutofacRegister.Register();//常規注入 -------》App_Start 文件夾下
component

         }it

    }io


App_Start 文件夾下 代碼以下
class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc;
using Autofac;
using Autofac.Configuration;
using Autofac.Integration.Mvc;


namespace SupervisionWin.Web
{
    public class AutofacRegister
    {
        public static void Register()
        {
            var builder = new ContainerBuilder();


            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
            builder.RegisterSource(new ViewRegistrationSource());//頁面注入
            builder.RegisterFilterProvider();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
        }
    }
}
配置


XML 配置file

 而後在Web.config裏填代碼!以下:

        <configSections>

           <!--註冊autofac節點,在此以前須要引入Autofac.Configuration-->

           <section name="autofac"type="Autofac.Configuration.SectionHandler,Autofac.Configuration"/> 

        </configSections>

         <!--autofac節點的屬性設置-->

         <autofac>

           <!--這個部分以前我嘗試過直接注入,但是後來發現一個問題就是,有時候不會被識別,因此我嘗試分別注入每一個類庫,其中name屬性是相對路徑-->

           <files>

             <!--關於section屬性,是文件中的autoFac節點-->

             <file name="..//MyAutoFac.Service/Configuration.config"section="autoFac"></file>

             <filename="..//MyAutoFac.Repository/Configuration.config"section="autoFac"></file>

           </files>

          </autofac>




      至於Configuration.config文件,我只舉一個例子說明!單獨新建一個

       <configSections>

         <section name="autoFac"type="Autofac.Configuration.SectionHandler,Autofac.Configuration"/>

       </configSections>

        <!--defaultAssemby屬性是非必須屬性,可是我喜歡把它加上,爲了防止出錯-->

        <autoFacdefaultAssembly="MyAutoFac.Service">

          <!--這個component節點就是依賴注入的配置部分 type屬性是MyAutoFac.Service中的User文件還有命名空間-->

         <components>

            <!--以後的service屬性是指的MyAutoFac.Service.IService.UserService文件-->

           <componenttype="MyAutoFac.Service.UserService, MyAutoFac.Service" service="MyAutoFac.Service.IService.IUserService"/>

         </components>

        </autoFac>  

相關文章
相關標籤/搜索