繁体   English   中英

将参数传递给抽象 class 构造函数 c#

[英]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;
    }
}

现在,我想将ILoggerTestProcess class 传递给我的抽象构造函数。 有人可以帮我解决这个问题吗?

建议进行以下操作

Public class TestProcess:Test
{
    public ILogger _logger {get; set;}

    public TestProcess(ILogger logger): : base(logger)
    {
        _logger = logger;
    }
}

有两种方法可以做到这一点,在这两种方法中你都需要改变你的代码。

  1. 使用 Test(abstract) class 扩展您的 TestProcess class。

    公共 class 测试过程:测试{}

  2. 将您的抽象 class 更改为普通 class 并在那里实现 singleton。 那么您可以在创建测试 class 的实例时通过 ILogger。

    公共 class 测试{}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM