简介
纸壳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
了。