返回總目錄
abp提供了構建模組並將這些模組組合起來建立應用的基礎設施。乙個模組可以依賴另乙個模組。一般來說,乙個程式集可以認為是乙個模組。乙個模組是由乙個派生了abpmodule的類定義的。比如說我們在開發乙個可以用在不同的應用中的部落格模組。最簡單的模組定義如下:
}abp掃瞄所有的程式集,並找出所有的派生自abpmodule基類的類。如果你建立了不止乙個程式集的應用,那麼建議為每個程式集建立乙個模組定義。
abp在應用啟動和關閉的時候會呼叫一些特定的模組方法。你可以重寫這些方法來執行特定的任務。
abp按照依賴的順序呼叫這些方法。如果模組a依賴於模組b,那麼模組b在模組a之前初始化。方法執行的正確順序是:preinitialize-b, preinitialize-a, initialize-b, initialize-a, postinitialize-b and postinitialize-a。這對於所有的依賴圖都是成立的。shutdown方法也是類似的,但順序相反。
preinitialize
該方法會在應用啟動時首先呼叫。你可以在該方法裡面寫一些特定的**,這些**會在依賴注入註冊之前執行。比如,如果你建立了乙個傳統的註冊類,那麼你應該把它在這裡註冊(使用locmanager.addconventionalregister方法)。你也可以註冊到ioc容器的事件...等等。
initialize
該方法通常是依賴注入註冊的地方。一般使用iocmanager.registerassemblybyconvention方法完成。如果你想要定義自定義的依賴註冊,請看後面的依賴注入文件。
postinitialize
該方法在應用啟動的最後呼叫。在這裡可以安全地解析乙個依賴。
shutdown
該方法在應用關閉的時候呼叫。
乙個模組可以獨立於另乙個模組。abp會自動地嘗試解析這些依賴,但是建議通過重寫getdependencies方法來顯式宣告依賴,正如下面那樣:
[dependson(typeof(myblogcoremodule))]
}
你的模組也可以有一些自定義的方法,這些方法可以被依賴於該模組的其他模組所使用。假設mymodule2依賴於mymodule1,且mymodule2想要在preinitialize事件中呼叫乙個mymodule1的方法。
public class mymodule1 : abpmodule
public void mymodulemethod1()
}[dependson(typeof(mymodule1))]
public class mymodule2 : abpmodule
public override void preinitialize()
public override void initialize()
}
這裡,我們通過建構函式將mymodule1z注入到了mymodule2,因此mymodule2可以呼叫mymodule1的自定義方法。 ABP理論學習之Abp Session
返回總目錄 當應用程式要求使用者登入時,那麼應用程式也需要知道當前使用者正在執行的操作。雖然asp.net本身在展現層提供了session物件,但abp也提供了在任何需要獲得當前使用者和租戶的地方都可以使用的iabpsession介面。關於iabpsession 為了獲得實際的session資訊,必...
ABP理論學習之開篇介紹
返回總目錄 為了和2016年春節賽跑,完成該系列部落格,我犧牲了今天中午的時間來完成該系列的第一篇 開篇介紹。開篇介紹嘛,讀過大學教材的同學都知道,這玩意總是那麼無聊,跟考試沒關係,乾脆直接跳過,呵呵,多麼美好的大學時光啊!不過,現在想想,開篇介紹確實不怎麼重要,它只是告訴我們今後我要開始講什麼了,...
ABP理論學習之Nuget包
返回總目錄 abp已經發布在nuget上,這裡是所有包的列表。abp abp系統的核心包。所有其他的包都依賴這個包。abp.web 提供了mvc和web api都使用的一些通用類和資源 abp.web.resource web層的資源 js,css.檔案 abp.web.mvc 提供一些asp.ne...