我的项目是在dotnet core 3.1中,我正在使用Scrutor工具为装饰器注入依赖项。我有以下结构:
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上的依赖注入:
services.AddSingleton<IProvider, Provider>();
services.Decorate<IProvider, ProviderDecorator>();发布于 2020-03-09 03:18:15
将IProvider公有
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 { }https://stackoverflow.com/questions/60470029
复制相似问题