溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

abp模塊生命周期是什么

發布時間:2021-12-24 09:17:24 來源:億速云 閱讀:150 作者:iii 欄目:大數據

這篇文章主要講解了“abp模塊生命周期是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“abp模塊生命周期是什么”吧!

abp中將生命周期事件抽象為4個接口:

//預初始化
public interface IOnPreApplicationInitialization
{
   void OnPreApplicationInitialization([NotNull] ApplicationInitializationContext context);
}

//初始化
public interface IOnApplicationInitialization
{
   void OnApplicationInitialization([NotNull] ApplicationInitializationContext context);
}

//初始化完成
public interface IOnPostApplicationInitialization
{
   void OnPostApplicationInitialization([NotNull] ApplicationInitializationContext context);
}

//關閉
public interface IOnApplicationShutdown
{
   void OnApplicationShutdown([NotNull] ApplicationShutdownContext context);
}

abp定義了一個模塊生命周期接口,該接口只有兩個方法,用于初始化和關閉。

public interface IModuleLifecycleContributor : ITransientDependency
{
   void Initialize([NotNull] ApplicationInitializationContext context, [NotNull] IAbpModule module);

   void Shutdown([NotNull] ApplicationShutdownContext context, [NotNull] IAbpModule module);
}

這個接口的參數是IAbpModule接口的類型,也就是派生自AbpModule的模塊類型。該接口有一個默認實現,是一個抽象類,主要是用于復用。

public abstract class ModuleLifecycleContributorBase : IModuleLifecycleContributor
{
   public virtual void Initialize(ApplicationInitializationContext context, IAbpModule module)
   {
   }

   public virtual void Shutdown(ApplicationShutdownContext context, IAbpModule module)
   {
   }
}

abp根據四個生命周期分別有四個類型,這四個類型是基于模塊生命周期基類創建的。

public class OnApplicationInitializationModuleLifecycleContributor : ModuleLifecycleContributorBase
{
   public override void Initialize(ApplicationInitializationContext context, IAbpModule module)
   {
       (module as IOnApplicationInitialization)?.OnApplicationInitialization(context);
   }
}

public class OnApplicationShutdownModuleLifecycleContributor : ModuleLifecycleContributorBase
{
   public override void Shutdown(ApplicationShutdownContext context, IAbpModule module)
   {
       (module as IOnApplicationShutdown)?.OnApplicationShutdown(context);
   }
}

public class OnPreApplicationInitializationModuleLifecycleContributor : ModuleLifecycleContributorBase
{
   public override void Initialize(ApplicationInitializationContext context, IAbpModule module)
   {
       (module as IOnPreApplicationInitialization)?.OnPreApplicationInitialization(context);
   }
}

public class OnPostApplicationInitializationModuleLifecycleContributor : ModuleLifecycleContributorBase
{
   public override void Initialize(ApplicationInitializationContext context, IAbpModule module)
   {
       (module as IOnPostApplicationInitialization)?.OnPostApplicationInitialization(context);
   }
}

只有"關閉應用"這個生命周期實現Shutdown方法,其余的都是實現Initialize方法。最后是傳入的參數abp模塊去調用對應的生命周期。
剖析圖如下:
abp模塊生命周期是什么

感謝各位的閱讀,以上就是“abp模塊生命周期是什么”的內容了,經過本文的學習后,相信大家對abp模塊生命周期是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

abp
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女