国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Ioc Autofac心得

2019-11-17 01:48:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Ioc Autofac心得

對(duì)于這個(gè)容器注入,個(gè)人也不是很熟悉,很多還不懂,只會(huì)基本的操作,幾天把它記錄下來(lái),相信不久的自己會(huì)更上一層樓

下面記錄下應(yīng)用的流程

步驟:

1.添加應(yīng)用

2.重寫(xiě)工廠(chǎng)(這里講的是常用的構(gòu)造方法注入方式)

 1 public class CreateAutofacFactory : DefaultControllerFactory 2     { 3         public override IController CreateController(RequestContext requestContext, string controllerName) 4         { 5             //獲取容器 6             IContainer ic = CreateControllers.CreateController().Icontainer; 7             //獲取控制器類(lèi)型 8             Type t = this.GetControllerType(requestContext, controllerName); 9             //從容器中解析出對(duì)象10             return ic.Resolve(t) as IController;11         }12     }
View Code
 1 public class CreateControllers 2     { 3         PRivate CreateControllers() { } 4         private static CreateControllers createController; 5         public static CreateControllers CreateController() 6         { 7             if (createController == null) 8                 createController = new CreateControllers(); 9             return createController;10         }11         private IContainer iContainer { get; set; }12         public IContainer Icontainer13         {14             get 15             {16                 if (iContainer == null)17                 {18                     ContainerBuilder cb = new ContainerBuilder();19                     //用代碼注冊(cè)類(lèi)型20                     //cb.RegisterType<StudentDao>().As<IStudentDao>();21                     //cb.RegisterType<StudentManager>().As<IStudentManager>();22                     //cb.RegisterType<HomeController>();23 24                     //從配置文件注冊(cè)類(lèi)型25                     cb.RegisterModule(new ConfigurationSettingsReader("autofac"));26                     iContainer = cb.Build();//創(chuàng)建容器27                 }28                 return iContainer;29             }30         }31     }
View Code

3.啟動(dòng)(更換)工廠(chǎng)

 1 public class Mvcapplication : System.Web.HttpApplication 2     { 3         protected void Application_Start() 4         { 5             AreaRegistration.RegisterAllAreas(); 6  7             WebApiConfig.Register(GlobalConfiguration.Configuration); 8             FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 9             RouteConfig.RegisterRoutes(RouteTable.Routes);10             BundleConfig.RegisterBundles(BundleTable.Bundles);11 12             //換ControllerFactory(服務(wù)器一啟動(dòng)就更換工廠(chǎng))13             ControllerBuilder.Current.SetControllerFactory(new CreateAutofacFactory());14         }15     }
View Code

4.添加配置文件

 1 <configSections> 2     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 3     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 4    5     <!--在配置文件中添加配置節(jié)點(diǎn) name是配置節(jié)點(diǎn)的標(biāo)簽名  6         type是讀取配置節(jié)點(diǎn)內(nèi)容的類(lèi) 格式:命名空間名.類(lèi)名,程序集名--> 7     <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/> 8    9   </configSections>10 11 <autofac>12     <components>13         <component type="Winning.Tjgi.Backstage3G.UI.Controllers.HomeController,Winning.Tjgi.Backstage3G.UI"14                />15 <component16              type="test.Dal.UserDao,test.Dal"17              service="test.IDal.IUserDao,test.IDal"/>18 <component19               type="test.Bll.UserManager,test.Bll"20               service="test.IBll.IUserManager,test.IBll" />21 </components>22   </autofac>
View Code

5.構(gòu)造函數(shù)

1         IUserManager uMan = null;2         public HomeController(IUserManager uMan)3         {4             this.uMan = uMan;5         }    
View Code

五步走起,如果過(guò)程出錯(cuò)的話(huà)基本上都是配置文件配置出錯(cuò),還有就是經(jīng)常忘記更新dll類(lèi)庫(kù),在這里要建議下把類(lèi)庫(kù)的輸出路徑改成到UI項(xiàng)目里,經(jīng)常動(dòng)手才會(huì)記憶深刻,一直在努力中,希望能走出自己的道路,雖然脆弱,卻不退縮。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庄浪县| 三河市| 将乐县| 敦煌市| 抚远县| 北票市| 交口县| 万山特区| 佳木斯市| 阿巴嘎旗| 平度市| 肥城市| 彝良县| 金平| 湖州市| 顺义区| 孙吴县| 石棉县| 庆元县| 普洱| 金乡县| 永宁县| 将乐县| 宁明县| 玉龙| 扎兰屯市| 巴林右旗| 徐闻县| 托克托县| 尖扎县| 尉犁县| 德州市| 玉屏| 云霄县| 横峰县| 伊金霍洛旗| 大方县| 杨浦区| 抚宁县| 印江| 新邵县|