elsa-core——1.Hello World:Console

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elsa-core——1.Hello World:Console相关的知识,希望对你有一定的参考价值。

github上有一个开源的工作流项目elsa,elsa-core是core语言的版本,其文档因为是英文,因此会让很多人不想看,或者是看不下去,从这篇文章开始我将开始对elsa-core的文档翻译成中文并分享出来,方便大家查看与学习。

以下为正文:


 在本快速入门中,我们将了解一个执行工作流的最小控制台应用程序。

 接下来我们将:

  • 使用 Elsa 的 Workflow Builder API 以编程方式定义在控制台上显示文本“Hello World”的工作流定义。

  • 运行工作流。


项目

创建一个名为 ElsaQuickstarts.ConsoleApp.HelloWorld 的新 .NET Core 控制台项目:

dotnet new console -n "ElsaQuickstarts.ConsoleApp.HelloWorld"

CD 到创建的项目文件夹中:

cd ElsaQuickstarts.ConsoleApp.HelloWorld

添加以下包:

dotnet add package Elsa

dotnet add package Elsa.Activities.Console

 


 工作流程

创建一个名为 HelloWorld.cs 的新文件并添加以下代码:

using Elsa.Activities.Console;
using Elsa.Builders;

namespace ElsaQuickstarts.ConsoleApp.HelloWorld
{
    /// <summary>
    /// A basic workflow with just one WriteLine activity.
    /// </summary>
    public class HelloWorld : IWorkflow
    {
        public void Build(IWorkflowBuilder builder) => builder.WriteLine("Hello World!");
    }
}

上述工作流程只有一个步骤(也称为活动):WriteLine,它将一行文本写入标准输出(控制台)。

 


 程序

打开 Program.cs 并将其内容替换为以下内容:

using System.Threading.Tasks;
using Elsa.Services;
using Microsoft.Extensions.DependencyInjection;

namespace ElsaQuickstarts.ConsoleApp.HelloWorld
{
    class Program
    {
        private static async Task Main()
        {
            // Create a service container with Elsa services.
            var services = new ServiceCollection()
                .AddElsa(options => options
                    .AddConsoleActivities()
                    .AddWorkflow<HelloWorld>())
                .BuildServiceProvider();
            
            // Get a workflow runner.
            var workflowRunner = services.GetRequiredService<IBuildsAndStartsWorkflow>();

            // Run the workflow.
            await workflowRunner.BuildAndStartWorkflowAsync<HelloWorld>();
        }
    }
}

 运行

运行程序并观察以下输出:

Hello world!

成功!您已成功创建并执行 Elsa 工作流程。

如果觉得不错,可以推荐收藏一下,让我也更有动力。

相关文章:

以上是关于elsa-core——1.Hello World:Console的主要内容,如果未能解决你的问题,请参考以下文章

开源工作流elsa-core

1.hello,world

1.hello,world

1.2Hello, World!的大小

1.hello world

Step 1. Hello world.