【aspnetcore】Web服务中,使用Service来控制业务处理逻辑的版本和二次开发

之所以有这个想法,起源于对于二开的需求和不想要动态加载的执念。起初的一种设计思路是将同一个Route的不同实现,放于不同的项目,进而发布为不同的dll,然后通过动态加载和IWebBuilder.AddControllers().AddApplicationPart(Assembly)的方式来实现。这样做的优势是不需要修改源代码,只需要提前做好约定,然后在部署的时候选择需要的程序集进行部署即可。而弊端则是随着程序集的数量的增加,维护和二次开发会存在大量代码冗余和工作冗余的事情。
故而,在对net core进行的一番思考后,我认为接口化编程是更符合需求的设计思路。

AspNetCore的接口化,依托于其给出的三种注入接口:

  1. IServiceCollection.AddSingleton
    这种方式注入的接口是单例化的,全局仅会使用一个实例。

  2. IServiceCollection.AddScoped
    这种方式注入的接口是域的,每一个客户端所请求的,都应当是同一个实例。

  3. IServiceCollection.AddTransient
    这种方式注入的接口是始终更新的,每一次获取的实例都是新的。

posted @   不正游侠  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示