Json Notes of Workflow Core

2019年7月31日 52点热度 8人点赞 1条评论
内容目录

Workflow Core's Json Notes

  1. The design project stores those step points in a separate project, generating a separate dll.

The JSON is as follows:

{
  "Id": "HelloWorld11",
  "Version": 1,
  "Steps": [
    {
      "Id": "Hello",
      "StepType": "Test6.Steps.HelloWorld, Test6",
      "NextStepId": "Bye"
    },
    {
      "Id": "Bye",
      "StepType": "Test6.Steps.GoodbyeWorld, Test6"
    }
  ]
}

The format for "StepType": "Test6.Steps.HelloWorld, Test6" is: "{Fully Qualified Name of the Class},{Generated dll Assembly Name}"

Calling code:

class Program
{
    public static void Main(string[] args)
    {
        IServiceProvider serviceProvider = ConfigureServices();

        // Start the workflow host
        var host = serviceProvider.GetService<IWorkflowHost>();
        var DefinitionLoader = serviceProvider.GetService<IDefinitionLoader>();
        var jsonstr = System.IO.File.ReadAllText(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "test1.json"));
        var z = DefinitionLoader.LoadDefinition(jsonstr, Deserializers.Json);
        host.Start();

        Console.WriteLine("Starting workflow...");
        string workflowId = host.StartWorkflow(z.Id).Result;
        Console.WriteLine(workflowId);

        Console.ReadLine();
        host.Stop();
    }

    private static IServiceProvider ConfigureServices()
    {
        // Setup dependency injection
        IServiceCollection services = new ServiceCollection();
        services.AddLogging();
        services.AddWorkflow();        

        services.AddTransient<IDefinitionLoader, DefinitionLoader>();
        var serviceProvider = services.BuildServiceProvider();

        // Config logging
        var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
        loggerFactory.CreateLogger("Debug");
        return serviceProvider;
    }
}

痴者工良

高级程序员劝退师

文章评论