q1063823095 2020-04-20 14:12 采纳率: 0%
浏览 500
已结题

C# 不知道子类类名的情况下,如何调用子类的方法

有一个基类SocketBase,其中有一个RecvMsg(string msg)函数,

开发中,有若干个class去继承或者实现这个SocketBase,

想要子类中的RecvMsg被自动调用(不知道子类类名的情况下)

请问该怎么写?

补充:有点像C#的插件开发一样,别人在实现插件的接口时候,可以任意命名类命,那么在接口层,他们是怎么调用的子类方法呢?

  • 写回答

2条回答 默认 最新

  • hxycsdn9159 2020-04-22 17:29
    关注

    1.Assembly.GetExecutingAssembly()获取当前程序集所有的Type
    2.遍历这些Type找到继承自SocketBase的Type,可以试试Type.BaseType==typeof(SocketBase) 或者 is 运算符
    3.使用反射创建Type的实例
    4.使用反射找到这个实例的RecvMsg方法
    5.使用Method.Invoke()进行调用

    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法