从命名空间获取所有类并处理其属性

时间:2016-04-16 14:14:21

标签: c# c#-4.0 c#-5.0

我想从命名空间中获取所有类,所以我使用了这段代码:

var theList = Assembly.GetExecutingAssembly().GetTypes()
                  .Where(t => t.Namespace == myNameSpace)
                  .ToList();

它正在工作但是当我循环遍历此列表时,我想在List列表中创建每个类的实例或调用构造函数,例如调用它们的方法或属性。

Ofc这段代码不起作用,但这是我的目的。

foreach (Type t in theList)
        {
            description += t.Description;
        }

@Edit 我做了:

        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;
        }

1 个答案:

答案 0 :(得分:0)

要创建课程的实例,您可以调用JFrame

还有一个很好的扩展方法,用于从对象中获取属性和值:

Activator.CreateInstance()