繁体   English   中英

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

[英]“An internal error has occurred while evaluating method Activator.CreateInstance()”

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

第一个目录中的文件已加载,没有任何问题。 在下一个目录中的第一个文件处,它到达调用Activator.CreateInstance(type)的地步,并且继续进行而没有异常,但是返回的实例无法评估(“ 无法评估表达式 ”)。 尝试在“快速监视”窗口中执行相同的语句会产生上述错误,错误类型为“对象”,而不是异常。

我尝试过的

  • 引用包含所讨论类型的程序集,并使用new和空构造函数专门创建一个实例,即使从与此错误将要发生的同一点开始也是如此。 (成功)
  • 在调用堆栈中的其他位置对此类型使用Activator (失败)
  • 所讨论的类型实现了一个接口,但没有将任何其他类作为子类。
  • 程序集在AppDomain中(显然,在专门引用它之后)。
  • 将执行程序集移动到其他位置。 (失败)

我的意思是我至不知道要检查什么 ,我之前从未见过。

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

尝试打开Fusion Logging,并检查Fusion在做什么,并确保它能够找到并加载程序集。

Scott Hanselman-回到基础:使用Fusion Log Viewer调试模糊的加载程序错误

在您加载它时,可能有很多问题。

我遇到了一些:

  • 已加载给定程序集的另一个版本(可能是先前版本),但缺少此类型。
  • 由于正在加载依赖关系的另一个不兼容版本,因此该程序集无法加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM