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

news/2024/9/24 14:34:27
官方文档: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
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/64170.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

22320102 张怡晨9.24

思维导图:亿图 Xmind PDF转换器 :CAJ lightPDF(免费)www.light pdf.com pdf Candy

详解Diffusion扩散模型:理论、架构与实现

本文深入探讨了Diffusion扩散模型的概念、架构设计与算法实现,详细解析了模型的前向与逆向过程、编码器与解码器的设计、网络结构与训练过程,结合PyTorch代码示例,提供全面的技术指导。关注TechLead,复旦AI博士,分享AI领域全维度知识与研究。拥有10+年AI领域研究经验、复旦…

2024.9.24第二次课

思维导图制作:使用Xmind

中国大陆用户如何使用Jetbrains内置的AI插件AI Assistant

1 安装AI Assistant插件 AI功能依赖AI Assistant插件:2 功能 解释代码、回答有关代码片段的 问题、提交消息等等。 在需要时更快地编码 AI Assistant 可以自动补全单行、函数和整个代码块,并与您的编码样式、项目上下文和命名约定保持一致。AI Assistant 还可以根据您的自然语…

一种单目标A*算法设计与实现

一种单目标A*算法设计与实现 作者:吴屏珊最近在学习简单的单目标A*算法,其中在CSDN上阅读到的一篇博文给了我很大启发,于是在该博文的基础上,笔者记录了一点自己对于A*算法的体会和感悟。 原文链接目录 目录一种单目标A*算法设计与实现目录1. A*算法简单介绍1.1 A*算法的基…

AI智能写作时代来临:如何高效提升你的文案创作能力

随着人工智能技术的飞速发展,AI智能写作已经不再是遥不可及的概念,而是逐渐成为内容创作者的得力助手。在这个信息过载的时代,如何利用AI智能写作工具高效提升文案创作能力,成为了许多创作者关注的焦点。以下将从几个方面探讨如何在AI智能写作时代,提升个人的文案创作能力…

南沙C++信奥老师解一本通题 1264:【例9.8】合唱队形

​【题目描述】N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设KK位同学从左到右依次编号为1,2,…,K1,2,…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足T1<T2<…<Ti,Ti>Ti+1>…&…