MediaThor

A lightweight mediator for .NET 8 inspired by previous implementations.

View on NuGet GitHub

Getting Started

Installation

Install via NuGet Package Manager:

dotnet add package MediaThor

Or add to your .csproj:

<PackageReference Include="MediaThor" Version="1.0.0" />

Usage

Register MediaThor in your DI container
using MediaThor;
using System.Reflection;

var builder = WebApplication.CreateBuilder(args);
MediaThor.Mediator.UseMediatR(Assembly.GetExecutingAssembly(), builder.Services);
Send a Request
public class MyRequest : IRequest { }
public class MyResponse : IResponse<MyRequest> { }

public class MyHandler : IHandler<MyRequest, MyResponse>
{
    public Task<MyResponse> Run(MyRequest request)
    {
        // Handle request
        return Task.FromResult(new MyResponse());
    }
}

// Usage
var mediator = serviceProvider.GetRequiredService<IMediator>();
var response = await mediator.SendAsync<MyRequest, MyResponse>(new MyRequest());

API Reference

IMediator
  • Task<TResponse> SendAsync<TRequest, TResponse>(TRequest request)
  • TResponse Send<TRequest, TResponse>(TRequest request)
IHandler<TRequest, TResponse>
  • Task<TResponse> Run(TRequest request)
IRequest / IResponse<TRequest>
  • Marker interfaces for requests and responses.

License

MediaThor is licensed under the MIT License.