我一直在用DI制作简单的记录器类,但是我有一些问题。
这儿存在一个问题。如果我使用DI进行记录器课程。每当我使用它时,都应该这样使用它。
var logger = new LogService(new FileLogger());
logger.WriteLine("message");
Run Code Online (Sandbox Code Playgroud)
我想使其成为静态类,但是没有办法通过静态类中的构造函数注入依赖项。
所以,我这样改变它。
public static class LogService()
{
private static readonly ILoggable _logger;
static LogService()
{
_logger = new FileLogger();
}
}
Run Code Online (Sandbox Code Playgroud)
我觉得这很奇怪。这不是DI ..
没有将依赖项注入静态类的好方法吗?
谢谢。
为什么编译器认为这两个类不同?
public class A()
{
}
public class B()
{
}
Run Code Online (Sandbox Code Playgroud)
我觉得这个问题真的很可笑。但我想知道编译器确定它们不同的核心原因是什么。有没有人可以告诉我编译器背面发生了什么。
谢谢你。