Skip to content

5.0.0

Latest

Choose a tag to compare

@mayuanyang mayuanyang released this 10 May 12:07
· 2 commits to master since this release
c07129b

What's Changed

Breaking changes

  • IMediator now inherits IAsyncDisposable — any code implementing IMediator directly must add DisposeAsync(). Consumers of IMediator are unaffected.

Bug fixes

  • MediatorBuilder.RegisterHandlers(Assembly) now correctly picks up IStreamCommandHandler<,> implementors (previously silently skipped, causing NoHandlerFoundException at runtime)
  • Fixed broken return value in RequestPipe.ConnectToHandler IAsyncEnumerable branch (Task.FromResult(r)r)
  • PipeHelper.GetResultFromTask now throws InvalidOperationException with a descriptive message instead of bare Exception

Improvements

  • Mediator implements IAsyncDisposable with async-path fallback via DisposeAsync()
  • Removed unnecessary reflection in ReceiveContext.PublishAsyncpublishPipe.Connect() is now called directly through the interface
  • [EnumeratorCancellation] added to ConnectStream async-iterator methods so cancellation tokens are correctly forwarded to consumers
  • Count() LINQ extension replaced with .Count property (O(1)) at 4 sites in CommandReceivePipe and RequestPipe
  • ReceiveContext.MetaData uses ??= operator
  • Internal class GlobalRececivePipeConfigurator renamed to GlobalReceivePipeConfigurator (typo fix)

Full Changelog: 4.9.0...5.0.0