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配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 史上最严重ddos攻击事件(史上最严重d
- 下一篇: 新疆域名备案流程(新疆域名备案)