[C#/.NET 5]C#/.NET 5/.NET Core等应用程序中运行时在基类(父类)中动态获取子类的类型或类名?
2.65K 次浏览
如题,在C#、.NET 5,.NET Core等应用程序中,如何运行时在基类(父类)中动态获取子类的类型或类名呢?
比如,在下面示例代码中,需要在MessageSender
抽象基类中获取其子类的类名:
///
/// 消息发送抽象基类
///
public abstract class MessageSender
{
public virtual void Send(string message)
{
var className = ""; // 这里需要获取子类的类名
Console.WriteLine($"准备由消息发送程序[{className}]发送消息...");
DoWork(message);
}
protected abstract void DoWork(string message);
}
///
/// SMS消息发送程序
///
public class SmsSender : MessageSender
{
protected override void DoWork(string message)
{
Console.WriteLine($"正在发送消息:{message},请稍候...");
}
}
应该如何实现呢?