获取C#中命名空间中的类列表

时间:2009-12-02 20:43:27

标签: c# .net reflection

我需要以编程方式获取给定命名空间中所有类的List。我怎样才能在C#中实现这个(反射?)?

4 个答案:

答案 0 :(得分:26)

var theList = Assembly.GetExecutingAssembly().GetTypes()
                      .Where(t => t.Namespace == "your.name.space")
                      .ToList();

答案 1 :(得分:6)

没有LINQ:

尝试:

Type[] types = Assembly.GetExecutingAssembly().GetTypes();
List<Type> myTypes = new List<Type>();
foreach (Type t in types)
{
  if (t.Namespace=="My.Fancy.Namespace")
    myTypes.Add(t);
}

答案 2 :(得分:2)

看看这个How to get all classes within namespace?提供的答案返回一个Type []数组,你可以轻松修改它以返回List

答案 3 :(得分:1)

我只能想到循环遍历程序集中的类型以找到正确名称空间中的类型

public List<Type> GetList()
        {
            List<Type> types = new List<Type>();
            var assembly = Assembly.GetExecutingAssembly();
            foreach (var type in assembly .GetTypes())
            {
                if (type.Namespace == "Namespace")
                {
                    types.Add(type);
                }
            }
            return types;
        }