在我的 WPF 项目中,我有一个包含多个 WPF 用户控件的 dll。我希望在运行时能够检查数据库中的参数(已实现)并根据该参数(它是一个字符串)能够将特定的 UserControl 加载到我的 View 中。
UserControl 实际上是一个 Canvas,所以它基本上只是根据数据库条目将正确的 Canvas 放置在 View 上。
不知道我说的对不对,有不懂的可以问我。
感谢所有帮助者!
最佳答案
这种在运行时从 dll 加载控件或类似东西的概念称为 Reflection在某些情况下,这是一种常见的做事方式。尝试在 C# 中搜索反射,你会发现很多关于它的教程。
基本上您将在运行时加载 dll。然后你会寻求控制。找到它后,您将创建它的实例并使用它。这一切都将在运行时发生
UserControl myControl = null;
Assembly asm = Assembly.LoadFile(Your dll path);
Type[] tlist = asm.GetTypes();
foreach (Type t in tlist)
{
if(t.Name == "Your class name" )
{
myControl = Activator.CreateInstance(t) as UserControl;
break;
}
}
另见 this question供引用
关于c# - 在运行时加载嵌入在 DLL 中的 WPF 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872934/