* Variables are now stored including their type name for automatic deserialization into their actual type. This is important for use in expressions.
* **SplitObject** and **ExecuteMethod** now use workflow expressions instead of variable names. This allows for more flexibility.
* Improved **Join** activity to allow proper function within looping constructs.
* Improved Variables performance. Variables are no longer serialized/deserialized upon writing/reading perspectively, only when the workflow instance is persisted.
* Refactor buggy SignalRequestHandler
For some reason, the following code is problematic:
await DecryptToken()
.BindAsync(GetWorkflowInstanceAsync)
.BindAsync(CheckIfExecutingAsync)
.MapAsync(ResumeWorkflowAsync);
Basically, any lambda in the BindAsync and MapAsync could execute even after the containing method returned
* Implement better message handler registration without adding multiple IMediator services
* Abstracted Mediator service registration methods.
* Add Liquid support for JObject.