【发布时间】:2011-10-31 16:45:53
【问题描述】:
我的项目包含很少的用户控件(每个都代表一个游戏,但这无关紧要),在第二个项目(游戏客户端)中,我想列出第一个库中的控件,创建它们的对象并将该控件附加到一个容器。我该怎么做?
这些是 WPF 项目。请注意,我不想使用 VS 工具箱,因为该库将独立更新,而客户端则不会。
【问题讨论】:
标签: c# .net wpf reflection controls
我的项目包含很少的用户控件(每个都代表一个游戏,但这无关紧要),在第二个项目(游戏客户端)中,我想列出第一个库中的控件,创建它们的对象并将该控件附加到一个容器。我该怎么做?
这些是 WPF 项目。请注意,我不想使用 VS 工具箱,因为该库将独立更新,而客户端则不会。
【问题讨论】:
标签: c# .net wpf reflection controls
假设你所有的控件都继承自 Control 类,你可以这样做
List<Type> res = new List<Type>();
foreach (Type aType in Assembly.LoadFile("yourdll.dll").GetTypes())
{
if(aType.IsSubclassOf(typeof(Control)))
res.Add(aType);
}
因此,您将在 res 列表中获得所有类型。
编辑
这样你就可以创建你的实例了
Control myControl = (Control)Activator.CreateInstance(aType);
【讨论】: