获取实现类类型

问题描述 投票:0回答:1

我有以下代码

public abstract class abstract1
{
    public void Test1()
    {
        // Do something
    }
}

public class class1 : abstract1
{
}

public class Class1Test
{
    public void InvokeTest1()
    {
        Class1 c1 = new Class1();
        c1.Test1();
    }
}

如何获取从 Class1 调用 Test1 方法,然后调用 Abstract1 来进行日志记录?

谢谢,

c# types reflection stack-trace
1个回答
0
投票

要获取从 Class1 调用 Test1 方法,然后调用抽象 1 以进行日志记录,您可以执行以下操作:

  1. 创建一个继承自Class1和abstract1的新类。
  2. 在新类中,重写 Test1 方法并添加日志记录代码。
  3. 创建新类的实例并调用 Test1 方法。

以下代码展示了如何执行此操作:

    public class Class1Logger : Class1, abstract1
{
    public override void Test1()
    {
        // Do something
        // Add logging code here
    }
}

public class Class1Test
{
    public void InvokeTest1()
    {
        Class1Logger c1 = new Class1Logger();
        c1.Test1();
    }
}

当对 Class1Logger 对象调用 Test1 时,将执行日志记录代码。它将允许您从 Class1 和 Abstract1 注册方法调用 Test1。

输出示例

Class1.Test1()
abstract1.Test1()

第一行显示 Test1 方法是从 Class1 类调用的。第二行显示 Test1 方法是从abstract1 类调用的。

© www.soinside.com 2019 - 2024. All rights reserved.