我正在尝试在我的 WPF 应用程序中执行类似的操作:
ToolboxControl ctrl = new ToolboxControl();
Assembly assembly = Assembly.LoadFile(file);
var category = new ToolboxCategory(assembly.GetName().Name);
foreach (Type t in assembly.GetTypes())
{
var wrapper = new ToolboxItemWrapper(t, t.Name);
category.Add(wrapper);
}
ctrl.Categories.Add(category);
即为程序集中找到的每种类型添加 ToolboxItemWrappers。但是最后一行抛出以下异常(参见图片)
http://img41.imageshack.us/img41/2261/7xvqv.png http://img41.imageshack.us/img41/2261/7xvqv.png
外部程序集的所有依赖项也在主 (WPF) 应用程序中引用。那么这里出了什么问题以及如何修复它?
最佳答案
您正在使用Assembly.LoadFile
通过反射加载程序集。但是此方法不会自动在同一目录中查找依赖项。您应该使用Assembly.LoadFrom
。
还要考虑到 LoadFrom
通过 Fusion,允许将加载请求重定向到另一个程序集,而 LoadFile
准确加载您请求的内容。
关于c# - 如何将外部程序集的类型添加到工具箱控件? (WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594968/