我正在使用一个类库,其中每个类都必须共享一个记录器类的单个实例。记录器不是我的,即它是我引用的 dll。共享是必要的,因为所有消息都必须附加到在实例化记录器时创建的单个日志消息文件的末尾。
我想过在实例化后通过引用传递记录器类,但这会导致一些非常丑陋的依赖关系。
我在枪下,没有太多时间进行实验。关于实现这一目标的最佳方法的任何建议?我在想一个静态类可能是答案,但我承担的任何实施都需要一些时间,我不想走上死胡同。
======================= 更新 ===================
我认为这是处理这个问题的最快和最干净的方法:
public class Logger
{
private static LoggerTool _loggerTool;
public static void WriteLogMessage(string message)
{
if (_loggerTool == null)
{
// Create a new log file
string logFileName = "LogFile-" + DateTime.Now.ToString("HHmmss");
_loggerTool = new LoggerTool(logFileName);
}
_loggerTool.LogMessage(message);
}
}