我需要以编程方式获取给定命名空间中的所有类的List
。我该如何在C#中实现这一点(反射?)?
我需要以编程方式获取给定命名空间中的所有类的List
。我该如何在C#中实现这一点(反射?)?
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "your.name.space")
.ToList();
没有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);
}
我只能想到循环遍历程序集中的类型,以找到正确命名空间中的类型。
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;
}