语境
在我的 ASP.NET 项目序列化/反序列化 JSON 的某些类中,我认为使用静态JsonConvert...方法不是最佳选择,也不能new与硬编码类一起使用
题
我会在构造函数中注入一些东西吗?我是否必须为此目的定义我的自定义简单接口,或者是否有任何约定/内置概念如何不对类型进行硬编码?
我在API中有一个类,有一个静态方法,用于验证和记录详细信息.任何指导如何注入ILogger接口请.
public class ValidateDataInAPI
{
public static bool IsValid(string data)
{
//do something
If(error)
{
_logger.Error("Log error as implemented by caller");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想将 Serilog 添加Log到我的程序中的静态类中,如下所示(DataHelper是类名):
private readonly ILogger _log = Log.ForContext<DataHelper>();
Run Code Online (Sandbox Code Playgroud)
但这会导致错误消息:
静态类型不能用作类型参数
这是有道理的。那么如何将记录器(在非静态类中工作正常)注入这个类呢?
更新:您提到的问题的答案表明这是不可能的。但是根据 Serilog 的 Github,有一个解决方法。我只需要 log 来了解它正在记录的类。现在,它似乎是从主类记录的。