Skip to content

hvidgaard/MediatR.SimpleInjector

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MediatR.SimpleInjector

MediatR.SimpleInjector

Instead copy following code in every project (main project, test project, ....):

    private static void RegisterAssemblies(Container container)
    {
        var assemblies = GetAssemblies();
        container.RegisterSingleton<IMediator, Mediator>();
        container.Register(typeof(IRequestHandler<,>), assemblies);
        container.Register(typeof(IAsyncRequestHandler<,>), assemblies);
        container.Register(typeof(ICancellableAsyncRequestHandler<>), assemblies);
        container.RegisterCollection(typeof(INotificationHandler<>), assemblies);
        container.RegisterCollection(typeof(IAsyncNotificationHandler<>), assemblies);
        container.RegisterCollection(typeof(ICancellableAsyncNotificationHandler<>), assemblies);
        container.RegisterCollection(typeof(IPipelineBehavior<,>), assemblies);

        container.Register(() => Mapper.Instance);
        container.RegisterSingleton(new SingleInstanceFactory(container.GetInstance));
        container.RegisterSingleton(new MultiInstanceFactory(container.GetAllInstances));
    }

    private static IEnumerable<Assembly> GetAssemblies()
    {
        yield return typeof(IMediator).GetTypeInfo().Assembly;
        yield return typeof(TestCommand).GetTypeInfo().Assembly;
    }

Just use MediatR.SimpleInjector as following:

    public static Container RegisterMediator(this Container container)
    {
        var assemblies = GetAssemblies();
        return container.BuildMediator(assemblies);
    }

    private static IEnumerable<Assembly> GetAssemblies()
    {
        yield return typeof(TestCommand).GetTypeInfo().Assembly;
    }

About

MediatR.SimpleInjector

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%