纸壳CMS替换默认实现
简介
纸壳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
纸壳CMS替换默认实现的更多相关文章
- 纸壳CMS主题增强,支持主题中加入模板
背景 在之前,纸壳CMS的主题仅仅只是CSS样式,并不支持在主题下使用模板来构建不同的HTML结构.现在我们对主题功能做了增强,可以在主题下添加各自的模板,这样在制作主题时,就会更加自由.不仅如此,新 ...
- 纸壳CMS可视化建站系统搭建多语言网站
纸壳CMS是可视化建站系统,现已经从架构上支持多语言.但是多语言功能默认是没有开启的.您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换. 开启多语言 如果您没有在系统设置中看到多语言设置菜 ...
- 纸壳CMS列表Grid的配置
纸壳CMS(ZKEACMS)里的Grid是一个TagHelper,是对jQuery插件datatables的一个配置封装. Easy.Mvc.TagHelpers.GridTagHelper grid ...
- 使用VS Code开发纸壳CMS自动编译主题压缩CSS,JS
Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段.代码对比 Diff.GI ...
- 在Docker中运行纸壳CMS并配置使用MySql
纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/ ...
- 使用vs code开发纸壳CMS并启用Razor智能提示
关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: 下载代码 GitHub:https://github.com/Seri ...
- ASP .Net Core路由(Route) - 纸壳CMS的关键
关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: GitHub:https://github.com/SeriaWei/ ...
- 纸壳CMS的插件加载机制
纸壳CMS是一个开源的可视化设计CMS,通过拖拽,在线编辑的方式来创建网站. GitHub https://github.com/SeriaWei/ZKEACMS.Core 欢迎Star,Fork,发 ...
- 纸壳CMS 3.0升级.Net Core 2.1性能大提升
微软发布了.Net Core 2.1正式版,纸壳CMS也在第一时间做了升级,并做了一系列的优化和调整,性能大幅提升,并解决了一些历史遗留问题,添加了一些新功能. Github https://gith ...
随机推荐
- CSS中的各种width(宽度)
一 window对象的innerWidth.outerWidth innerWidth是可用区域的宽度(内容区 + 滚动条) outerWidth是浏览器窗口的宽度(可用区域的宽度+审查元素区域的宽度 ...
- TZOJ 4746 Xiangqi(模拟棋盘数组)
描述 Xiangqi is one of the most popular two-player board games in China. The game represents a battle ...
- C++ define与const
C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下: 用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常 ...
- 【JVM】浅谈双亲委派和破坏双亲委派
一.前言 笔者曾经阅读过周志明的<深入理解Java虚拟机>这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践才能加深理解,正应 ...
- Linux-——grep
概念介绍 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- Spring整合JMS——事务管理
Spring提供了一个JmsTransactionManager用于对JMS ConnectionFactory做事务管理.这将允许JMS应用利用Spring的事务管理特性.JmsTransactio ...
- C#中int? 转换为 int 型
用 “ var a= zongfen.Score;”
- [PHP] constant variable
print: 3.13 PI 3.14
- 记录pytorch的几个问题
1.Variable里面的creator没有,网上博客上面说有,奇怪??
- xxnet 360浏览器设置
开xxnet全局pac只能代理. 然后选择360浏览器里面使用ie代理设置就行