找不到类型为“Microsoft.Win32.SafeHandles.SafeRegistryHandle”的构造函数

时间:2011-11-23 21:43:33

标签: c# .net exception

Fax.NET项目升级到.NET 4 Client Profile后,我得到了以下例外:

MissingMethodException:
Constructor on type 'Microsoft.Win32.SafeHandles.SafeRegistryHandle' not found.

此函数的return语句出现异常:

private static SafeHandle CreateRegistrySafeHandle(IntPtr handle)
{
    Type type;

    type = typeof(SafeHandle).Assembly.GetType("Microsoft.Win32.SafeHandles.SafeRegistryHandle");

    return (SafeHandle)Activator.CreateInstance(
        type,
        BindingFlags.Instance | BindingFlags.NonPublic,
        null,
        new object[] { handle, true },
        null);
}

这个例外的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

自{4}以来,SafeRegistryHandle Constructor是公开的(BindingFlags.Public),而不是内部或私有(BindingFlags.NonPublic)。

如果您有权访问源代码,则可以使用

替换该方法
private static SafeHandle CreateRegistrySafeHandle(IntPtr handle)
{
    return new SafeRegistryHandle(handle, true);
}