小编ast*_*tef的帖子

如果孩子不知道它,如何将依赖注入基类?

我有一个Command依赖于ICommandLogger接口的抽象基类:

public abstract class Command
{
    public Command(ICommandLogger cmdLogger) { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud)

现在所有的继承人看起来像:

public class ConcreteCommand : Command
{
     public ConcreteCommand(CommandLoggersNamespace.ICommandLogger cmdLogger)
         : base(cmdLogger)
     {
     }
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢他们被迫知道ICommandLogger(他们不使用).

怎么解决这个问题?或者完全重新设计的原因是什么?

c# oop dependency-injection

2
推荐指数
1
解决办法
816
查看次数

KeyValuePair <> struct中Deconstruct方法的目的是什么?

我正在看System.Collections.Generic.KeyValuePair<TKey, TValue>结构System.Runtime, Version=4.2.1.0,这种方法引起了我的注意.

这是签名:

public void Deconstruct(out TKey key, out TValue value);
Run Code Online (Sandbox Code Playgroud)

它是否包含除简单转发KeyValue属性之外的任何逻辑?为什么有人会更喜欢它而不是财产吸气剂?

c# c#-7.0

2
推荐指数
1
解决办法
575
查看次数

如何使用dotnet sln将所有项目添加到单个解决方案中?

下面的例子,从这里我想执行

dotnet sln AllProjects.sln add **/*.csproj
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

找不到项目或目录**/*.csproj

看起来通配符不起作用。我究竟做错了什么?

.net c# projects-and-solutions solution dotnet-cli

2
推荐指数
3
解决办法
1542
查看次数

如何将 IServiceCollection 注册转换为 Autofac 注册?

WonderfulMicrosoft.Extensions.DependencyInjection.IServiceCollection有很多与之相关的扩展。

一个例子是Microsoft.Extensions.Logging.ConsoleLoggerExtensionsAddConsole(this ILoggingBuilder builder)哪些寄存器方法ConsoleLoggerProviderILoggingBuilder.Services类型的属性IServiceCollection

因此,对于任何使用 Autofac 的人来说,这是一个合乎逻辑的问题。如何重用所有这些扩展?有没有办法将所有IServiceCollection注册转换为ContainerBuilder注册?

c# dependency-injection autofac

2
推荐指数
1
解决办法
1554
查看次数