peverify在.NET 4中修复的错误?

时间:2012-02-24 02:22:40

标签: clr cil peverify

我安装了VS .NET 2010,以及面向.NET 3.5的类库。下面的简单C#片段在.NET 4.0的peverify下生成可验证的IL,但IL不验证使用.NET 3.5的peverify。

在此转换中是否修复了任何peverify错误?

public static bool IsGenericTypeInstance(this Type typ)
{
    return typ.IsGenericType && !typ.IsGenericTypeDefinition;
}
public static IEnumerable<Type> GetAllGenericArguments(this Type type)
{
    return type.IsGenericTypeInstance()
         ? type.GetGenericArguments()
               .SelectMany(x => x.IsGenericTypeInstance()
                                ? GetAllGenericArguments(x)
                                : new[] { x })
         : Enumerable.Empty<Type>();
}

产生的错误是:

Error   26  [Sasa.dll : Sasa.Types::<GetAllGenericArguments>b__0]
[offset 0x0000001C][found ref 'System.Collections.IEnumerable']
[expected ref 'System.Collections.Generic.IEnumerable`1[System.Type]']
Unexpected type on the stack.

我显然有点担心,因为我明确地针对.NET 3.5,我不希望在这个平台上运行时验证错误。

0 个答案:

没有答案