日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zdal配置文件_Autofac的基本使用---4、使用Config配置

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zdal配置文件_Autofac的基本使用---4、使用Config配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備

使用的表是Student,創建相關的IDAL、DAL、IBLL、BLL層。

使用EF,創建一個Model層,存放edmx文件。

創建一個Infrastructure層,基礎設施項目,使用泛型類型。

普通類型的使用

1.APP.Config 配置信息

此處有個需要注意的地方:configSections節點必須要放在configuration節點的最上面,否則運行會報錯。這個在MSDN上有說明。

2.Autofac.config配置信息

3.控制臺程序代碼

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingApps.BLL;usingApps.DAL;usingApps.IBLL;usingApps.IDAL;usingApps.Infrastructure.BaseObject;usingApps.Infrastructure.IBaseInterface;usingApps.Model;usingAutofac;usingAutofac.Configuration;namespaceApps.Con

{classProgram

{static void Main(string[] args)

{#region 普通類型---Student---Config獲取配置

var builder = newContainerBuilder();

builder.RegisterModule(new ConfigurationSettingsReader("autofac"));//編譯容器完成注冊且準備對象解析

var container =builder.Build();//現在你可以使用 Autofac 解析服務. 例如,這行將執行注冊的lambda表達式對于 IConfigReader 服務.//但是我們不推薦直接操作容器,這會導致內存泄漏。//當我們解析出一個組件時,依賴于我們定義的lifetime scope,一個新的對象實例會被創建。

using (var scope =container.BeginLifetimeScope())

{//從容器中解析需要使用的組件

var iStudentBLL = scope.Resolve();//調用解析后的組件中的方法

List list =iStudentBLL.GetList().ToList();

Console.WriteLine("List中的數據行:" +list.Count);

}#endregion Console.ReadKey();

}

}

}

(1)使用流程

a.參見Autofac管理注冊類的容器實例

var builder = new ContainerBuilder();

b.下面就需要為這個容器注冊它可以管理的類型

builder.RegisterType().As();

c.注冊泛型,這個地方需要把泛型進行注冊,否則無法正常執行

builder.RegisterGeneric(typeof(UnitOfWork<>)).As(typeof(IUnitOfWork<>)).SingleInstance();

builder.RegisterType>().As>().SingleInstance();

d.生成具體的實例

var container = builder.Build();

e.在應用運行期間,你需要從容器生命周期域中解析出組件實例來使用它們。

using (var scope = container.BeginLifetimeScope())  {  }

f.從容器中解析需要使用的組件

var iStudentBLL = scope.Resolve();

g.調用解析出來的組件的方法

List list = iStudentBLL.GetList().ToList();

(2)中間碰到的問題。

在官方文檔,http://docs.autofac.org/en/latest/configuration/xml.html#configuring-with-application-configuration-legacy-pre-4-0

其中的配置示例,component節點中。

type屬性,是 類完整命名空間(包括類名),類的命名空間(不包括類名)

service屬性,是 類完整命名空間(包括類名)

與示例中的區別就是,示例中的service屬性值 與type保持一致,均有","逗號 后加類的命名空間。而官方文檔中卻沒有。

當示例也這么編寫時,運行就報錯了。

泛型類型的使用

當在autofac.config配置文件中,如此配置。

泛型類型的配置失敗,無法正常運行,隨之放棄。

不知道如何進行泛型類型的配置設置。

總結

以上是生活随笔為你收集整理的zdal配置文件_Autofac的基本使用---4、使用Config配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。