紙殼CMS在設計上使用的是ASP.Net Core預設的IOC容器,通過依賴註入可以輕鬆替換掉原來的介面實現。例如在使用紙殼CMS做二次開發的過程中,可能要接入另一系統的用戶來作為CMS系統的用戶。這種情況下,可以不用修改原來的UserService,而是重新實現一個IUserService,然後用... ...
簡介
紙殼CMS是一個開源免費的可視化內容管理建站系統,拖拽就可以輕鬆建網站。
GitHub: http://github.com/SeriaWei/ZKEACMS
紙殼CMS在設計上使用的是ASP.Net Core預設的IOC容器,通過依賴註入可以輕鬆替換掉原來的介面實現。例如在使用紙殼CMS做二次開發的過程中,可能要接入另一系統的用戶來作為CMS系統的用戶。這種情況下,可以不用修改原來的UserService
,而是重新實現一個IUserService,然後用這個新的實現來替換掉舊的UserService
。
1. 新建一個新的User插件
新建紙殼CMS插件很簡單,可以參考這篇文章:http://www.zkea.net/codesnippet/detail/zkeacms-plugin-development.html
2. 新建一個UserService
這個新的UserService
需要繼承自IUserService
,並對每一個方法做出實現:
public class CRMUserService : Easy.Modules.User.Service.IUserService { }
3. 依賴註入替換舊的Service
在插件的插件類(xxxPlug.cs)中,在ConfigureServices
註冊Service的方法中進行註入替換:
public override void ConfigureServices(IServiceCollection serviceCollection) { serviceCollection.Replace(new ServiceDescriptor(typeof(IUserService), typeof(CRMUserService), ServiceLifetime.Transient)); }
這樣,當系統中獲取IUserService
的實例時,得到的就是新的CRMUserService
了。
原文地址:http://www.zkea.net/codesnippet/detail/post-179.html