aspnetcore插件开发dll热加载 二

这一篇文章应该是个总结。
投简历的时候是不是有人问我有没有abp的开发经历,汗颜!
在各位大神的尝试及自己的总结下,还是实现了业务和主机服务分离,通过dll动态的加载卸载,控制器动态的删除添加。
项目如下:

 
演示效果:

 
下面就是代码部分:
重点
1.IActionDescriptorChangeProvider接口,(关于添加删除可以通过后台任务检测刷新,移除控制器操作)
2.builder.Services.AddControllers().ConfigureApplicationPartManager和AssemblyLoadContext搭配加载业务的dll(动态链接库)。
我的业务代码很简单,可能有人要说了,那复杂的业务,有很多业务类,注入这块怎么办,怎么实现整个的调用链。

关于业务和主服务之间的关联代码就在这了

namespace ModuleLib
{
//可以给个抽象类,默认实现。否则各个服务每次实现接口会多做一步删除为实现接口的动作
public interface IModule
{
void Configure......

版权声明:cnblogshot 发表于 2024-05-26 15:34:16。
转载请注明:aspnetcore插件开发dll热加载 二 | 程序员导航网

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...