调用抽象类型的方法

Invoke Methods of abstract Types

我目前正在使用 C# 进行反射,我有一个问题。我尝试调用可能是抽象或接口的不同 class 类型。所以我只是不调用那些方法,因为我不能创建一个实例(显然)。但我并不满足于此。


我的问题是:是否有可能以某种方式解决这个问题并创建一个实例,我可以在其中调用给定抽象 class 类型的方法?有点像制作一个继承自模板的 class 然后可以是抽象类型?

    foreach (MethodInfo m in _classType.GetMethods(bindingFlags))
    {
              if (_classType.IsAbstract || _classType.IsInterface)
              {
                   // only invoke instanciable types
                   MessageBox.Show("Abstract class and Interface cannot be invoked!");
              }
              else
              {
                   var ms = CreateStringFromMethodForCheckedBox(m);
                   if (s == ms)
                   {
                       m.Invoke(Activator.CreateInstance(_classType), null);
                   }
              }
     }

是的,您可以在运行时动态创建一个继承自抽象类型的新 class,然后调用 class 上的方法:http://www.c-sharpcorner.com/UploadFile/87b416/dynamically-create-a-class-at-runtime/

你必须确保重写所有抽象方法,否则你的 class 将必须是抽象的,你将一无所获。