Skip to content

Upgrade from 4.2.2 to 5.0.1 breaks decoration #237

@lukasvavrek

Description

@lukasvavrek

Hi, while playing around updating and upgrading my app I run into a compatibility issue.

Here is an example of the registration code:

public static class DependencyInjection
{
    public static IServiceCollection AddApplication(this IServiceCollection services)
    {
        services.Scan(scan =>
            scan.FromCallingAssembly()
                .AddClasses(classes => classes
                    .AssignableTo(typeof(IRequestHandler<,>))
                    .NotInNamespaceOf<IRequestHandlerBehavior>())
                .AsImplementedInterfaces()
                .WithTransientLifetime()
        );
        
        services.Decorate(typeof(IRequestHandler<,>), typeof(RequestExceptionHandler<,>));

        return services;
    }
}

While this works as expected in version 4.2.2, in 5.0.1 I am running into:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.Populate()
   at Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(ICollection`1 serviceDescriptors, ServiceProviderOptions options)
   at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options)
   at Microsoft.Extensions.Hosting.HostApplicationBuilder.Build()
   at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build()
   at Program.<Main>$(String[] args) in /XXX/Program.cs:line 15

Let me please know if I can provide some useful information!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions