[英]Pass argument to abstract class constructor c#
我有一个抽象的 class 如下所示:
Public abstract class Test
{
private readonly ILogger _logger;
public Test(ILogger logger)
{
_logger = logger;
}
public ActionResult GetData()
{
try
{
}
catch(Exception exe)
{
_logger.log("Exception");
}
}
}
现在,我有另一个 class 以下列方式使用上述内容:
Public class TestProcess
{
public Test tst {get; protected set;}
public TestProcess(Test tesstt)
{
tst = tesstt;
}
}
现在,我想将ILogger
从TestProcess
class 传递给我的抽象构造函数。 有人可以帮我解决这个问题吗?
建议进行以下操作
Public class TestProcess:Test
{
public ILogger _logger {get; set;}
public TestProcess(ILogger logger): : base(logger)
{
_logger = logger;
}
}
有两种方法可以做到这一点,在这两种方法中你都需要改变你的代码。
使用 Test(abstract) class 扩展您的 TestProcess class。
公共 class 测试过程:测试{}
将您的抽象 class 更改为普通 class 并在那里实现 singleton。 那么您可以在创建测试 class 的实例时通过 ILogger。
公共 class 测试{}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.