Asp.net core Dotnetcore装饰程序没有被调用?

Asp.net core Dotnetcore装饰程序没有被调用?,asp.net-core,.net-core,dependency-injection,asp.net-core-webapi,decorator,Asp.net Core,.net Core,Dependency Injection,Asp.net Core Webapi,Decorator,我的项目在DotnetCore3.1中,我正在使用Scrutor工具为decorator注入依赖关系。我的结构如下: internal interface IProvider { Task<Response> Get() } internal sealed class Provider : IProvider { public async Task<Response> Get() { Console.writeline("

我的项目在DotnetCore3.1中,我正在使用Scrutor工具为decorator注入依赖关系。我的结构如下:

internal interface IProvider 
{
     Task<Response> Get()
}

internal sealed class Provider : IProvider
{
    public async Task<Response> Get()
    {
          Console.writeline("Some stuff");
    }
}

internal static class ProvideExtensions
{
    public static Task<Response[]> Get(this IProvider provider)
    {
      provider.Get()      
    }
}


internal sealed class ProviderDecorator : IProvider
{
    private readonly IProvider _inner;

    ProviderDecorator(IProvider inner){
    _inner = inner;

    }

    public async Task<Response> Get()
    {
          Console.writeline("Some stuff");
          Console.writeline("Some stuff" + "other stuff");
    }

}
内部接口IProvider
{
任务Get()
}
内部密封类提供程序:IProvider
{
公共异步任务Get()
{
Console.writeline(“一些东西”);
}
}
内部静态类提供扩展
{
公共静态任务Get(此IProvider提供程序)
{
provider.Get()
}
}
内部密封类提供程序装饰程序:IProvider
{
私有只读IProvider\u内部;
ProviderDecorator(IProvider内部){
_内部=内部;
}
公共异步任务Get()
{
Console.writeline(“一些东西”);
writeline(“一些东西”+“其他东西”);
}
}
Startup.cs上的依赖项注入:

    services.AddSingleton<IProvider, Provider>();
    services.Decorate<IProvider, ProviderDecorator>();
services.AddSingleton();
服务。装饰();

使
i供应商
公开

public interface IProvider
{
    Task<Response> Get();
}
internal sealed class Provider : IProvider
{
    public async Task<Response> Get()
    {
        Console.WriteLine("Some stuff");
        return new Response();
    }
}
internal static class ProvideExtensions
{
    public static Task<Response> Get(this IProvider provider)
    {
        return provider.Get();
    }
}
internal sealed class ProviderDecorator : IProvider
{
    private readonly IProvider _inner;

    public ProviderDecorator(IProvider inner)
    {
        _inner = inner;
    }

    public async Task<Response> Get()
    {
        Console.WriteLine("Some stuff");
        Console.WriteLine("Some stuff" + "other stuff");

        return new Response();
    }

}
public class Response { }
公共接口IProvider
{
任务Get();
}
内部密封类提供程序:IProvider
{
公共异步任务Get()
{
Console.WriteLine(“一些东西”);
返回新的响应();
}
}
内部静态类提供扩展
{
公共静态任务Get(此IProvider提供程序)
{
返回provider.Get();
}
}
内部密封类提供程序装饰程序:IProvider
{
私有只读IProvider\u内部;
公共提供者装饰者(IProvider内部)
{
_内部=内部;
}
公共异步任务Get()
{
Console.WriteLine(“一些东西”);
WriteLine(“一些东西”+“其他东西”);
返回新的响应();
}
}
公共类响应{}

使
i供应商
公开

public interface IProvider
{
    Task<Response> Get();
}
internal sealed class Provider : IProvider
{
    public async Task<Response> Get()
    {
        Console.WriteLine("Some stuff");
        return new Response();
    }
}
internal static class ProvideExtensions
{
    public static Task<Response> Get(this IProvider provider)
    {
        return provider.Get();
    }
}
internal sealed class ProviderDecorator : IProvider
{
    private readonly IProvider _inner;

    public ProviderDecorator(IProvider inner)
    {
        _inner = inner;
    }

    public async Task<Response> Get()
    {
        Console.WriteLine("Some stuff");
        Console.WriteLine("Some stuff" + "other stuff");

        return new Response();
    }

}
public class Response { }
公共接口IProvider
{
任务Get();
}
内部密封类提供程序:IProvider
{
公共异步任务Get()
{
Console.WriteLine(“一些东西”);
返回新的响应();
}
}
内部静态类提供扩展
{
公共静态任务Get(此IProvider提供程序)
{
返回provider.Get();
}
}
内部密封类提供程序装饰程序:IProvider
{
私有只读IProvider\u内部;
公共提供者装饰者(IProvider内部)
{
_内部=内部;
}
公共异步任务Get()
{
Console.WriteLine(“一些东西”);
WriteLine(“一些东西”+“其他东西”);
返回新的响应();
}
}
公共类响应{}