【发布时间】:2016-12-12 18:07:58
【问题描述】:
我的外部 dll 设计如下:
class Engineering
{
ProjectsCollection project {get;}
}
abstract class ProjectsCollection
{
public abstract Project Open(string path);
}
我可以继续,直到获得方法信息
MethodInfo info = type.GetMethod("Open");
如何调用“Open”方法?
【问题讨论】:
-
您尝试使用哪个类来调用该方法?您需要一个为方法 Open 提供实现的类型的实例。抽象方法在
ProjectsCollection中没有实现。你有继承自ProjectsCollection的类吗?如果是,则显示它。如果否,则不能调用该方法。 -
进一步阅读您已经阅读的内容以了解
GetMethod。我敢打赌,同一个资源有一个关于调用接收成员的章节。顺便说一句:无论您的方法是否抽象,都没有区别,因为您需要一个实际的 instance 类型。由于您无法创建抽象类的实例,因此您必须创建一个子类并调用此实例上的方法。 -
为什么这个方法被标记为 C# 和 Java?
Dynamic顺便说一句。我猜这毫无意义。
标签: c# .net dynamic reflection