【发布时间】:2016-08-08 11:54:14
【问题描述】:
我想从命名空间中获取所有类,所以我使用了以下代码:
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == myNameSpace)
.ToList();
它正在工作,但是当我遍历这个列表时,我想为列表中的每个类创建实例或调用构造函数,例如调用它们的方法或属性。
Ofc 这段代码不起作用,但这是我的目的。
foreach (Type t in theList)
{
description += t.Description;
}
@编辑 我做到了:
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == myNameSpace)
.ToList();
foreach (Type t in theList)
{
Command instance = (Command)Activator.CreateInstance(t);
result += Environment.NewLine + instance.Name + " - " + instance.Description;
}
【问题讨论】:
-
我不知道连接描述(我认为这首先不是成员)对应于“创建实例和调用方法”。你能澄清一下吗?
-
查看
Activator.CreateInstance -
描述只是字符串属性。例如,我添加了这个。我的意思是我想使用 Llist 列表中的类属性和方法。
-
您需要查看“反射”以及随之而来的所有内容。它允许您在运行时创建对象并调用方法/属性。
-
@Porqqq
Description是静态属性吗?如果您创建一个新实例,Description将设置为默认值还是null?