在同一名称空间中动态加载引用

时间:2014-08-01 16:27:55

标签: .net vb.net reflection system.drawing system.reflection

我正在尝试定制名为NCR Back Office(以前称为Menulink)的专有餐厅软件,但我正在努力加载System.Drawing,即使我可以看到它是通过使用System.Reflection引用的程序集。

其中一项功能是能够创建自定义工作流,该工作流主要是一系列MessageBox,并重定向到整个应用程序的各个位置。通过一系列下拉菜单完成这些工作流程的创建。也可以完全用自定义代码替换这个薄薄的代码(bat,VB,VB.NET)。我想添加一个自定义表单,并创建了一个示例实现,以查看是否可行但我收到错误“程序集System.Drawing [...]所需的参考”。

包括几个其他程序集作为参考包括System.Reflection。我能够确定通过使用以下代码

加载了System.Drawing
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
Dim assems As [Assembly]() = currentDomain.GetAssemblies()
Dim assem As [Assembly]
For Each assem In  assems
    MessageBox.Show(assem.ToString())
Next assem

令人沮丧的是,加载的程序集完全对应于错误中引用的程序集(相同版本,公钥等)。

如果我能够作为System.Reflection.Assembly得到程序集的句柄,那么直接使用该程序集中的方法将程序集加载到System.Drawing命名空间中?如果没有引用System.Drawing会显示在当前域中吗?

编辑清晰度

我看到System.Drawing是根据我在AppDomain中加载的内容加载到应用程序中的。但我可以访问它。我可以使用程序集引用将它重新加载到System.Drawing吗?

0 个答案:

没有答案