首页 > 编程语言 >.net core开源工作流程框架elsa源码阅读之容器的理解

.net core开源工作流程框架elsa源码阅读之容器的理解

时间:2024-09-24 14:38:03浏览次数:10  
标签:core 依赖 容器 elsa feature Module 源码 注册 这个

官方文档:https://v3.elsaworkflows.io/ 这个框架的依赖注入容器,底层是靠原生的IServiceCollection,没有使用其他的三方容器;然后在这个基础上,作者进行了封装。 主要是用了Module类和继承了IFeature接口的类完成了依赖注入容器的封装。Module是用来管理feature和依赖的。 Module我称之为模块,它的核心方法有三个:   0   0 成员: 0 前面的configure是注册feature的,后面的Apply方法是注册feature的依赖对象和配置的管道。 feature,我的理解是特性,它的方法: 0 这个是所有特性类的基类。 这个Module怎么工作的呢?它是根据一个扩展类:   0 AddElsa就是入口,有意思的是这个Modules成员,它的key尽然是一个服务容器,我的理解是,它可能是不同的模块用不同的容器吧。 注意这个AppFeature,它是完成所有服务注册的关键:   0 这个类有个属性,叫DependsOn....这个属性是用于注册这个类所依赖的对象的,所以这里会注册ElsaFeatrue:   0   0 configure里就是注册的管道的,而其依赖中,最关键的WorkFlowsFeatrue最为关键:   0   这是其中一个Use   0   0 它这里就把module和feature解耦了,通过这个Action参数,作为连接,我module不直接调用feature的方法,而是这个特性告诉模块,我传给你个action委托,你调用这个委托就行了,这算是.net core框架代码的基本操作了。 以上,简单的介绍了elsa的依赖注入容器的一个大致内容。就通过Module的configure来调用featrure的委托参数,用module的apply来注册featrue的依赖对象和管道,这就是我的个人理解。 最后,一个官方的示例代码:   0  

标签:core,依赖,容器,elsa,feature,Module,源码,注册,这个
From: https://www.cnblogs.com/HelloQLQ/p/18429086

相关文章

  • 竞拍秒购电商系统源码开发
    竞拍秒购电商系统是一种结合了拍卖和限时抢购两种购物模式的电商平台。用户可以参与商品的竞拍,也可以在特定的时间窗口内以固定价格快速购买商品。这种系统需要具备高效、稳定的特点,同时提供良好的用户体验。以下是开发需求与功能架构分析。一、开发需求1. 用户模块· 注册与登录......
  • SpringBoot养老院管理系统 计算机专业毕业设计源码06036
    摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设养老院管理系统。本设计主要实现集人性化、高效率、便捷等优点于一身的养老院管理......
  • ssm 旅游爱好者交互系统 毕业设计源码25818
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游爱好者交互系统等问题,对旅游爱好者交互系统进行研究分析,然后开发设计出旅游爱好者交互......
  • <免费开题>团员管理系统|全套源码+文章lw+毕业设计+课程设计+数据库+ppt
    <免费开题>团员管理系统|全套源码+文章lw+毕业设计+课程设计+数据库+ppt1.2课题研究内容对于团员管理系统来说,其实我们所要研究的内容并不复杂,首先是要通过不同的角色来区分,那么肯定会有学生、管理员、辅导员等三种角色。那么对于这三种角色而言,每一种角色都有着自己的意义......
  • 后台管理前端设计器,个人商用1999!源码学习
    WEB组态和大屏设计器,在IoT项目中十分常见,通常是这样: WEB组态 大屏设计器但实际项目除了展示,通常还有后台管理。此前,这部分通常需要vue开发。有了UIOTOS,就能0基础,组态一样,搭建整个管理界面。 示例效果这是一款前端零代码组态工具,无需学习js、html、css,能一站式搭建多......
  • asp.net core webapi 获取请求头token
    usingMicrosoft.AspNetCore.Mvc;usingMicrosoft.Extensions.Primitives;usingSystem.Collections.Generic;[ApiController][Route("[controller]")]publicclassMyController:ControllerBase{[HttpGet]publicIActionResultGet(){......
  • 【Unity精品源码】JU TPS 3 – 完整的第三人称射击游戏模板
    ......
  • [附源码]宠物领养管理系统+SpringBoot
    今天带来一款优秀的项目:宠物领养管理系统源码 。系统采用的流行的前后端分离结构,内含功能包括"管理端",“用户领养端”,“宠物管理”,“权限登录”等功能。如果您有任何问题,也请联系小编,小编是经验丰富的程序员!一.系统演示视频 https://githubs.xyz/show/270.mp4后端代码结......
  • 基于nodejs+vue校园二手市场平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育的普及和校园生活的丰富多彩,学生们在日常学习与生活中积累了大量不再需要的二手物品,如书籍、学习资料、电子产品、生活用品等。同时,新入学的学......
  • 基于nodejs+vue校园二手商品交易平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育的普及和校园生活的丰富多彩,大学生群体对各类商品的需求日益增长,同时也伴随着大量物品的闲置与浪费。特别是在每学期末或毕业生离校之际,大量书......