// TaskOrchestrationContext.cs
protected abstract ILoggerFactory LoggerFactory { get; }
This is a problem in scenarios where the context is wrapped by another context implementation (concrete use case for me is implementing a cancellable orchestrator which wraps the original context). My current workaround is to override the methods that actually use this property (namely the CreateReplaySafeLogger overloads), but that's a dependency on implementation details. The proper solution in this case would be to just return the LoggerFactory of the wrapped context, if it was made public. LoggerFactory is the only member of TaskOrchestrationContext that is not public.
This is a problem in scenarios where the context is wrapped by another context implementation (concrete use case for me is implementing a cancellable orchestrator which wraps the original context). My current workaround is to override the methods that actually use this property (namely the
CreateReplaySafeLoggeroverloads), but that's a dependency on implementation details. The proper solution in this case would be to just return theLoggerFactoryof the wrapped context, if it was made public.LoggerFactoryis the only member ofTaskOrchestrationContextthat is not public.