我有一个像下面这样的抽象类:
Public abstract class Test
{
private readonly ILogger _logger;
public Test(ILogger logger)
{
_logger = logger;
}
public ActionResult GetData()
{
try
{
}
catch(Exception exe)
{
_logger.log("Exception");
}
}
}
现在,我有另一个类,它以以下方式使用上述内容:
Public class TestProcess
{
public Test tst {get; protected set;}
public TestProcess(Test tesstt)
{
tst = tesstt;
}
}
现在,我想将 ILogger
从 TestProcess
类传递给我的抽象构造函数。有人能帮我看看我该怎么做吗?
答案 0 :(得分:0)
建议做以下
Public class TestProcess:Test
{
public ILogger _logger {get; set;}
public TestProcess(ILogger logger): : base(logger)
{
_logger = logger;
}
}
答案 1 :(得分:0)
有两种方法可以做到这一点,在这两种方法中,您都需要稍微更改代码。
使用 Test(abstract) 类扩展您的 TestProcess 类。
公共类 TestProcess:Test{}
将您的抽象类更改为普通类并在那里实现单例。那么你可以在创建Test类的实例时传递ILogger。
公共类测试{}