workflow-core
workflow-core copied to clipboard
added a type resolver to be replaced by another implementation later.
Describe the change If the application, which uses the workflow core, is based on a plugin system (.NET6 AssemblyLoadContext and PluginLoadContext), it is helpful to replace the resolving of the type.
In order to be able to use a custom type resolver, there is a new interface and a the default implementation.
Describe your implementation or design I added a new interface for the type resolver and injected a default implementation in the extension method to register the DSL.
Tests The original tests are adapted to work with the default implementation.
Breaking change It should not break anything, since the implementation is the same as before.
Additional context The idea was to replace the typeresolver after registering the DSL like:
services.AddWorkflow();
services.AddWorkflowDSL();
services.AddTransient<ITypeResolver, CustomTypeResolver>();
var serviceProvider = services.BuildServiceProvider();
var definitionLoader = serviceProvider.GetService<IDefinitionLoader>();