"在评估方法Activator.CreateInstance()"时发生内部错误

时间:2015-03-29 00:34:16

标签: c# .net

我从两个目录中找到的文件加载类型,并使用System.Activator创建每种类型的实例。我已多次这样做,没有任何问题,这让我觉得我即将学到一些东西。

加载第一个目录中的文件没有问题。在下一个目录的第一个文件中,它到达调用Activator.CreateInstance(type)的点并继续无异常,但无法评估返回的实例(" 无法计算表达式&#34)。尝试在QuickWatch窗口中执行相同的语句会将上述错误产生为类型为" object"的值,而不是例外。

我尝试过的事情:

  • 引用包含相关类型的程序集,并使用new和空构造函数专门创建一个实例,即使从此错误即将发生的同一点也是如此。的(成功)
  • 在调用堆栈的其他位置使用此类型的Activator。的(失败)
  • 有问题的类型实现了一个接口,但没有任何其他类的子类。
  • 程序集位于AppDomain中(显然,在专门引用它之后)。
  • 将实施装配移动到其他位置。的(失败)

我甚至不知道要检查什么,我以前从未见过这个。

这是Visual Studio 2013,.NET 4.5。我无法在Activator.CreateInstance的上下文中找到对此错误的任何引用。我能找到的唯一一个这个错误的实例没有解析。我不希望我提供的信息能够导致解决方案,但如果我至少可以找到可能的原因,我可以研究自己的解决方案。

1 个答案:

答案 0 :(得分:0)

尝试启用Fusion Logging并检查融合正在进行的操作,并确保它能够找到+加载程序集。

Scott Hanselman - Back to Basics: Using Fusion Log Viewer to Debug Obscure Loader Errors

当你加载它时,可能会出现大量问题。

有些人遇到过:

  • 已经加载了此类型的另一个版本(可能是之前的版本)。
  • 由于正在加载其依赖项的另一个不兼容版本,因此无法加载此程序集。