【aspnetcore】Web服务中,使用Service来控制业务处理逻辑的版本和二次开发
之所以有这个想法,起源于对于二开的需求和不想要动态加载的执念。起初的一种设计思路是将同一个Route的不同实现,放于不同的项目,进而发布为不同的dll,然后通过动态加载和
IWebBuilder.AddControllers().AddApplicationPart(Assembly)
的方式来实现。这样做的优势是不需要修改源代码,只需要提前做好约定,然后在部署的时候选择需要的程序集进行部署即可。而弊端则是随着程序集的数量的增加,维护和二次开发会存在大量代码冗余和工作冗余的事情。
故而,在对net core进行的一番思考后,我认为接口化编程是更符合需求的设计思路。
AspNetCore的接口化,依托于其给出的三种注入接口:
-
IServiceCollection.AddSingleton
这种方式注入的接口是单例化的,全局仅会使用一个实例。 -
IServiceCollection.AddScoped
这种方式注入的接口是域的,每一个客户端所请求的,都应当是同一个实例。 -
IServiceCollection.AddTransient
这种方式注入的接口是始终更新的,每一次获取的实例都是新的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)