ABP官方文件 四 啟動配置

2021-08-10 02:08:49 字數 2136 閱讀 9967

在應用啟動之前,abp框架提供了模組基本的配置和方法,大家參照下面這個例子就可以了。

public

class ******tasksystemmodule : abpmodule

public

override

void

initialize()

}

和orchard類似,abp框架一開始就被設計成模組化的,不同的模組可以通過abp框架來進行配置。舉個例子吧,不同的模組都可以新增導航,通過導航新增選單項到自己定義的主選單,具體的細節大家可以參照:

替換內建服務

configuration.replaceservice方法可以被用來重寫某個內建的服務。例如,你可以替換掉iabpsession服務使用你自己擴充套件的服務。如下所示:

configuration.replaceservice

(dependencylifestyle.transient);

replaceservice方法通過傳遞乙個action來實現替換,這樣我們就可以使用自定義的擴充套件型別替換掉原來的型別(你也可以直接使用castle windsor直接呼叫更高階的api函式)。

同乙個服務可以被替換多次(尤其是在不同的模組)。最後替換的型別才是最終的使用型別。

和.net框架原生的啟動配置相比較,abp有哪些不一樣呢?abp框架的模組可以通過iabpmoduleconfigurations介面進行個性化的擴充套件,這樣的話,模組配置更加簡單、方便。

示例**如下:

...

using abp.web.configuration;

...public override void preinitialize()

...

在上面這個例子中,我們通過配置abpwebcommon模組,傳送異常到客戶端。當然了,不是每乙個模組都需要這種配置,通常情況下我們需要,是當乙個模組需要在多個不同的應用中重複使用,我們才進行這樣的配置。

如下**,假如我們有乙個命名為mymodule的模組,並且這各模組有一些自己的配置。那麼我們首先要建立一些類,這些類定義為屬性(譯者注:屬性有自動的get和set訪問器。),代表了不同的配置。

public

class mymoduleconfig

public

string sampleconfig2

}

接下來,我們通過依賴注入,註冊這個類。iocmanager.register();

譯者注:

在iocmanager中註冊了乙個類,換句話說,我們通過iocmanager可以得到這個類mymoduleconfig的例項。至於ioc的原理這裡就不在詳細說了,總之,就是可以得到乙個類的例項。

最後,我們通過建立乙個擴充套件的方法imoduleconfigurations來得到配置的引用。如下**:

譯者注:

模組配置是乙個靜態類,因為我們需要重複使用它。靜態方法mymodule返回的是乙個配置介面,引數是imoduleconfigurations介面。

現在,在其他模組中也可以配置我們自定義的這個mymodule模組了。

configuration.modules.mymodule().sampleconfig1 = false;

configuration.modules.mymodule().sampleconfig2 = "test";

在某種意義上,mymodule需要這些配置,通過注射mymoduleconfig我們就可以使用這些值。

public

class myservice : itransientdependency

public

void

doit()}}

這意味著,在abp框架的系統中,所有的模組都可以集中配置。

ABP官方文件翻譯 3 5 規約

規約 建立規範類 使用倉儲規約 組合規約 討論介紹 規約模式是一種特別的軟體設計模式,通過使用布林邏輯將業務規則鏈結起來重新調配業務規則。維基百科 尤其是,它通常用來為實體或其他業務物件定義可復用的過濾器。示例 在這個部分,我們將看到規約模式的必要性。本部分是通用的,和abp的實現沒有必然的關係。假...

ABP官方文件 三 模組系統

abp框架提供了建立和組裝模組的基礎,乙個模組能夠依賴於另乙個模組。在通常情況下,乙個程式集就可以看成是乙個模組。在abp框架中,乙個模組通過乙個類來定義,而這個類要繼承自abpmodule。模組系統當前專注於服務端而不是客戶端。譯者注 如果學習過orchard的朋友,應該知道module模組的強大...

ABP官方文件 九 快取管理

abp給出了乙個抽象快取基類。並在內部使用了該抽象基類。使用 memorycache 來實現了該抽象基類。它能夠被任何其它的快取類來擴充套件。abp.rediscache 包就擴充套件了該快取基類。abp對外提供了乙個快取介面icachemananger。我們通過建構函式注入這個介面來獲取快取。示例...