我目前正在尝试扩展 Ilog.Error 方法的行为
我通常会从一个类继承,覆盖我想要扩展的方法并使用我的新类,如下所示:
public class MyLogger:Logger
{
overwrite Error(..)
{
base.Error(..);
Mycode(..);
}
}
但是,由于我在通过 Logmanager 生成记录器时处理接口(interface),因此没有可以以这种方式扩展的类。是否有另一种方法可以扩展也适用于接口(interface)的方法?
请您参考如下方法:
overwrite 不是 C# 中的关键字。使用override 为了从基类重写此方法,需要标记virtual(这意味着它可以被重写)或abstract 这意味着它必须被覆盖。有关更多引用信息,请参见此处:
编辑:
由于一些评论指出您应该创建一个扩展方法,您可以像这样:
public static class Log4NetExtension
{
public static void LogError(this Logger logger)
{
logger.Error(..);
//your code
}
}
并像这样使用它:
var logger = new Logger();
logger.LogError();

