C#工作流WorkflowCore学习:Hello World
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#工作流WorkflowCore学习:Hello World,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1953字,纯文字阅读大概需要3分钟。
内容图文
![C#工作流WorkflowCore学习:Hello World](/upload/InfoBanner/zyjiaocheng/605/b6a25b721c9a4f15a5a6482ec52e2f28.jpg)
为什么需要工作流?在之前博文.Net依赖注入技术学习:基本模型中,有提到这个世界的基本构型是纵向分层和横向组合,而工作流模型在纵向上比源码级别提升了一个层次,它的基本操作单元是步骤;在横向上通过一些规则,可以使步骤灵活组合。实现了更高层次抽象的简洁性和表达力的平衡。
本文介绍了.Net体系比较优秀的开源工作流WorkflowCore,github地址:https://github.com/danielgerlag/workflow-core。
下面定义了2个步骤:HelloWorld和GoodbyeWorld
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024618.jpg)
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024643.jpg)
public class HelloWorld : StepBody { public override ExecutionResult Run(IStepExecutionContext context) { Console.WriteLine("Hello world"); return ExecutionResult.Next(); } }View Code
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024618.jpg)
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024643.jpg)
public class GoodbyeWorld : StepBody { private ILogger _logger; public GoodbyeWorld(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger<GoodbyeWorld>(); } public override ExecutionResult Run(IStepExecutionContext context) { Console.WriteLine("Goodbye world"); _logger.LogInformation("Hi there!"); return ExecutionResult.Next(); } }View Code
然后定义一个工作流:
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024618.jpg)
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024643.jpg)
public class HelloWorldWorkflow : IWorkflow { public void Build(IWorkflowBuilder<object> builder) { builder .StartWith<HelloWorld>() .Then<GoodbyeWorld>(); } public string Id => "HelloWorld"; public int Version => 1; }View Code
最后启动工作流:
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024618.jpg)
![C#工作流WorkflowCore学习:Hello World - 文章图片](/upload/getfiles/0001/2021/4/30/20210430092024643.jpg)
public class Program { public static void Main(string[] args) { IServiceProvider serviceProvider = ConfigureServices(); //start the workflow host var host = serviceProvider.GetService<IWorkflowHost>(); host.RegisterWorkflow<HelloWorldWorkflow>(); host.Start(); host.StartWorkflow("HelloWorld"); Console.ReadLine(); host.Stop(); } private static IServiceProvider ConfigureServices() { //setup dependency injection IServiceCollection services = new ServiceCollection(); services.AddLogging(); services.AddWorkflow(); //services.AddWorkflow(x => x.UseMongoDB(@"mongodb://localhost:27017", "workflow")); services.AddTransient<GoodbyeWorld>(); var serviceProvider = services.BuildServiceProvider(); return serviceProvider; } }View Code
内容总结
以上是互联网集市为您收集整理的C#工作流WorkflowCore学习:Hello World全部内容,希望文章能够帮你解决C#工作流WorkflowCore学习:Hello World所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。