Confusing error: "VerificationException: Could not merge stack at depth 1, types not compatible"

Confusing error: "VerificationException: Could not merge stack at depth 1, types not compatible"

我正在使用 Unity 4.6,以防相关。

完整错误(运行时间错误,不是编译时):

VerificationException: Error verifying UtilityExtensions:DeserializeFromEditorPrefs<T> (T,string): Could not merge stack at depth 1, types not compatible: T ([boxed] Complex) X T ([boxed] Complex) at 0x01ca

DFEP的定义:

public static T DeserializeFromEditorPrefs<T>(this T o, string prefix) where T : class {

这是导致异常的行(不管我使用什么类型;所有类型都会导致异常;该函数处理错误的输入数据没有问题,错误实际上在调用中):

UtilityExtensions.DeserializeFromEditorPrefs(new AbilityInfuse(),"");

我不知道发生了什么。我在其他项目中使用此功能,所以可能是项目设置,但我无法找到有关可能导致此错误的原因的任何信息。此函数也有一些变体,其中 none 似乎有效。来自同一文件的其他通用扩展没有问题,只有这一组函数不会 运行。

AbilityInfuse 被标记为可序列化,即使可序列化为空 class 问题仍然存在。

Unity 在构建 Web Player 时使用高安全设置。我不确切知道任何设置是什么,但是切换到 PC 构建删除了阻止该功能的任何安全设置 "verified"。