1 回答
TA贡献1815条经验 获得超12个赞
不应在 UI 层中定义记录器。这是一个横切关注点,因此您应该在外部库中定义它,并在您需要记录的所有项目中引用它。
如果你只想记录异常,你可以定义一个全局异常处理程序,让异常冒泡到 UI 层并在那里记录它们。这里的例子
如果你真的想一直向下传递你的记录器,你可以Action
在方法中使用 as 参数,并传递一个带有你想要在下游调用的方法调用的 lambda。
public class Logger
{
public string Message { get; set; }
public void Log(string message)
{
Message = message;
}
}
public class Business
{
public void DoWork(int id, Action<string> logAction)
{
if (id < 0)
{
logAction("The string is less than zero");
}
}
}
调用代码
Logger logger = new Logger();
Business business = new Business();
business.DoWork(-1, (message) => logger.Log(message));
- 1 回答
- 0 关注
- 57 浏览
添加回答
举报