上面說的都是爲每一個類型註冊事件,可是若是咱們但願爲全部類型都註冊某一事件,有什麼方式來實現呢?編程
(首先申明,OnRelease事件暫時沒找到統一註冊的方式)後端
咱們能夠在builder註冊類型前使用RegisterCallback進行統一事件註冊,詳見代碼:緩存
var builder = new ContainerBuilder(); builder.RegisterCallback(cr => { // 下面的Registered事件至關類型的OnRegistered事件 cr.Registered += (sender, eventArgs) => { // OnPreparing事件 eventArgs.ComponentRegistration.Preparing += (o, preparingEventArgs) => { }; // OnActivating事件 eventArgs.ComponentRegistration.Activating += (o, activatingEventArgs) => { }; // OnActivated事件 eventArgs.ComponentRegistration.Activated += (o, activatedEventArgs) => { }; }; }); // builder.RegisterType<...>... // ...
Autofac全面解析系列(版本:3.5) – [使用篇(推薦篇):5.生命週期事件]多線程
基於ASP.NET MVC的熱插拔模塊式開發框架(OrchardNoCMS)--AOP編程架構
ABP 初探 之 權限設計 (前段js如何與後端權限結合)
ABP源碼分析二十七:ABP.Entity Framework
我就以我使用Fluent API 經驗說說,Fluent API 比 數據註解好的地方。
1. 你們再看一眼上面代碼,是否是感受有點不純淨了,原本一個乾乾淨淨的類,搞得亂亂的。感受有點噁心。
2. 這一點可能要後面我貼出代碼,分享源代碼才理解,不過使用過EntityFramework Fluent API 的應該可以理解到,配置和類分離,職責更加單一。
3. 配置和類分離,擴展性,靈活性就會更好,你們多知道,EntityFramework 不只支持Sql Server,支持Oracle,MySql,Sqlite 等這些流行數據庫,每種產品配置也許都有細微差異,若是以 DataAnnotations 方式實做,那我豈不是要從新新增模型,同樣的表設計,爲何要加呢? 只有配置不一樣纔要加啊!
4. 作技術架構,這種方式封裝也比較好
ABP源碼分析三十七:ABP.Web.Api Script Proxy API
四十 Immutable
http://www.cnblogs.com/xuanhun/archive/2013/04/26/3045448.html
四十一 ABP理論學習之多租戶
http://www.cnblogs.com/farb/p/ABPMultiTenancy.html
EntityFramework.DynamicFilters
四十二 異步鎖
四十三 CallContext