编辑:虽然相似,这与关于使用NLog包装的问题不一样。扩展方法增加一个间接的另一个层面,这使得即使是适当的包装报告错误调用点NLog可以通过c#扩展方法保存callsite信息吗?
我目前使用的是日志来包裹NLOG,我用他们的例子显示的把戏在他们的来源得到准确调用点信息。对于一个新项目,我开始,我想创建一个简单的类,所以我只是实现类似如下界面:
public interface ILogger
{
void Log(LogEntry entry);
}
然后,我创建了一个扩展方法类,如:
public static class LoggerExtensions
{
public static void Debug(this ILogger logger, string format, params object[] args)
{
logger.Log(new LogEntry(LogLevel.Debug, format, args));
}
...
}
的问题在于NLog然后将该调用站点显示为扩展方法而不是扩展方法的调用者。我做了一些搜索,但找不到有关NLog和扩展方法的任何信息。
在这种情况下是否可以修复现场信息?或者是在接口本身中包含Debug,Info等功能的唯一方法?
可能重复[如何保留wr时的callsite信息(http://stackoverflow.com/questions/7412156/how-to-retain-callsite-information-when-wrapping-nlog) – 2013-05-03 20:04:11
正如我在问题中提到的,它不同于使用包装器,我是已经在做 – bj0 2013-05-03 20:15:00