我创建了一些UserControls。我想将项目中的所有UserControl添加到List<UserControl>
。
我已经阅读了一些关于这个问题的主题,但我无法让它发挥作用。 我试过在命名空间中获取所有UserControl但它仍然不起作用。
var controlType = typeof(UserControl);
var controls = controlType
.Assembly
.GetTypes()
.Where(t => controlType.IsAssignableFrom(t) &&
t.Namespace == "AgentManagement.UserInterface.SystemUI"
);
答案 0 :(得分:0)
问题是您正在获取System中UserControl
类的程序集。你想要做的是从UserControl
得到你的类,这显然不会出现在系统程序集中。
您要做的是打电话,例如:
Assembly.GetExecutingAssembly()
.GetTypes()
.Where(t => controlType.IsAssignableFrom(t) &&
t.Namespace == "AgentManagement.UserInterface.SystemUI");
或者,如果它不在执行程序集中,则类似
typeof(OneOfYourUserControl).Assembly.GetTypes().Where(...);