2017-07-02 40 views
-1

假設我們每個租戶都有不同的SMS提供者(每個租戶都有自己的SMS提供者,希望通過這些提供者發送SMS)我們如何在ASPNetBoilerplate中實現這種情況?如何將短信操作轉換爲界面?

+0

我想我們必須爲每個租戶創建一個具有特定接口的DLL並存儲在相關的數據庫中。但是,在ASPNetBoilerplate模板中加載和注入此DLL的位置在哪裏? –

回答

0

如果每個租戶只有一個短信提供商,那麼您可以在Tenant類上創建一個複雜類型。如果每個租戶都有多個SMS提供商,則創建TenantSmsProvider實體。

我不明白你爲什麼要創建DLL!

0

我想你是要求依賴注入。 您應該創建一個工廠(稱爲ISmsProviderFactory),該工廠根據租戶ID(例如GetProviderByTenantId(int tenantId)創建短信服務提供商(如ISmsProvider)。這是一種常見的軟件模式。然後,您可以在需要時根據租戶注入ISmsProviderFactory並獲得ISmsProviderFactory

您可以使用Castle Windsor的API來註冊工廠依賴關係,而不是創建自定義工廠類。因此,您可以直接在您的代碼中注入ISmsProvider

現在,問題是如何實施SmsProviderFactory?有不同的方法取決於你的要求。但是這部分不在ABP的範圍之內,你可以在網上找到很多文章。

順便說一句,如果你想利用ABP的插件系統,那麼你可以設計它有點不同:每個插件的DLL可以添加一個ISmsProvider到字典(其中字典的關鍵是租戶ID /名稱),所以你的工廠可以爲特定租戶選擇註冊的提供商。

相關問題