反编译会导致错误 CS1112,程序集混乱



所以我通过de4dot运行了一个C#大学程序,然后反射器对其进行反编译,当我在VS中运行它时出现以下错误。

[程序集:System.Runtime.CompilerServices.Extension]

错误 CS1112 不使用'System.Runtime.CompilerServices.ExtensionAttribute'.使用"this"关键词相反。 客户端 C:\用户\用户\桌面\333\as2\decom\AssemblyInfo.cs 15 活动

我尝试用这个和这个()替换代码,但这只会导致其他问题。有人可以解释一下我要用"这个"代替什么吗?我觉得我在这里错过了一些明显的东西。

当程序集包含扩展方法时,编译器会将 [assembly: Extension] 属性添加到程序集中。 这是自动发生的,并且根据您看到的错误,编译器不希望您明确执行此操作。 假设反编译器输出的其余部分是正确的,注释掉程序集级属性,您应该没问题。

也就是说,您永远不应该假设反编译器的输出是正确的。

你要向方法添加this修饰符:

public static class FooExtensions
{
    public static void DoSomething(this Foo foo)
    {
        ...
    }
}

这使它成为一种扩展方法。

一般来说,我不会尝试使用反编译器来"往返"代码 - 反编译器对于查看编译器实际执行的操作很有用,但是在各种情况下,结果是不可编译的。

相关内容

  • 没有找到相关文章

最新更新