首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反编译会导致错误的CS1112,程序集混乱

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

Stack Overflow用户
提问于 2016-05-21 07:44:08
回答 2查看 5.6K关注 0票数 2

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

大会: System.Runtime.CompilerServices.Extension 错误'System.Runtime.CompilerServices.ExtensionAttribute'.不使用CS1112使用“this”关键字代替。客户端C:\Users\user\Desktop\333\as2\decom\AssemblyInfo.cs 15活动

我试着用这个和这个()替换代码,但是这只会导致其他问题。有人能解释一下我要用这个代替什么吗?我觉得我错过了一些显而易见的东西。

EN

回答 2

Stack Overflow用户

发布于 2016-05-22 21:17:36

当程序集包含扩展方法时,编译器会将[assembly: Extension]属性添加到程序集。这是自动发生的,根据您所看到的错误,编译器不希望您显式地执行它。假设反编译器输出的其余部分是正确的,请注释掉程序集级属性,您应该会很好。

尽管如此,您永远不应该假设反编译器的输出是正确的。

票数 8
EN

Stack Overflow用户

发布于 2016-05-21 07:48:16

您应该将this修饰符添加到方法中:

代码语言:javascript
复制
public static class FooExtensions
{
    public static void DoSomething(this Foo foo)
    {
        ...
    }
}

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

一般来说,我不会尝试使用反编译器来“往返”代码--反编译程序可以用来查看编译器实际做了什么,但是在不同的情况下,结果是不可编译的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37360266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档