内容目录
Workflow Core's Json Notes
- 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;
}
}
文章评论