纸壳CMS替换默认实现
程序员文章站
2024-01-04 16:08:16
纸壳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插件很简单,可以参考这篇文章:
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
了。
原文地址: