首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotnetcore装饰器没有被调用?

Dotnetcore装饰器没有被调用?
EN

Stack Overflow用户
提问于 2020-03-01 06:07:15
回答 1查看 36关注 0票数 1

我的项目是在dotnet core 3.1中,我正在使用Scrutor工具为装饰器注入依赖项。我有以下结构:

代码语言:javascript
复制
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");
    }

}

Startup.cs上的依赖注入:

代码语言:javascript
复制
    services.AddSingleton<IProvider, Provider>();
    services.Decorate<IProvider, ProviderDecorator>();
EN

回答 1

Stack Overflow用户

发布于 2020-03-09 03:18:15

IProvider公有

代码语言:javascript
复制
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 { }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60470029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档