aspnetcore插件开发dll热加载 二
这一篇文章应该是个总结。
投简历的时候是不是有人问我有没有abp的开发经历,汗颜!
在各位大神的尝试及自己的总结下,还是实现了业务和主机服务分离,通过dll动态的加载卸载,控制器动态的删除添加。
项目如下:
演示效果:
下面就是代码部分:
重点
1.IActionDescriptorChangeProvider接口,(关于添加删除可以通过后台任务检测刷新,移除控制器操作)
2.builder.Services.AddControllers().ConfigureApplicationPartManager和AssemblyLoadContext搭配加载业务的dll(动态链接库)。
我的业务代码很简单,可能有人要说了,那复杂的业务,有很多业务类,注入这块怎么办,怎么实现整个的调用链。
关于业务和主服务之间的关联代码就在这了
namespace ModuleLib
{
//可以给个抽象类,默认实现。否则各个服务每次实现接口会多做一步删除为实现接口的动作
public interface IModule
{
void Configure......
暂无评论...