C# DotPeek反编译.dll文件 当我反编译一个X.dll文件时,我无法重建它,我收到以下错误 严重性代码说明项目文件行抑制状态 错误CS1001标识符应为库C:\Users\…\Managers\RpcHubManager.cs 52 Active 为什么dotpeek会创建这个奇怪的代码,o_uuSiteContainer6.p_uSite7,以及它的意思???,我如何解决这个问题??,提前谢谢

C# DotPeek反编译.dll文件 当我反编译一个X.dll文件时,我无法重建它,我收到以下错误 严重性代码说明项目文件行抑制状态 错误CS1001标识符应为库C:\Users\…\Managers\RpcHubManager.cs 52 Active 为什么dotpeek会创建这个奇怪的代码,o_uuSiteContainer6.p_uSite7,以及它的意思???,我如何解决这个问题??,提前谢谢,c#,decompiling,C#,Decompiling,您的问题在于,IL公共中间语言允许变量名中使用符号,但C不允许 例如: RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7 一切都会好的首先,你应该选一本关于C的书,现在你会知道为什么代码不能编译。我怀疑这个问题更多的是关于为什么这个反编译器会产生无法重新编译的代码-这是正确的吗?@rhughes是的,确实如此,在这种情况下我应该怎么做,特别是在这个函数中修改后重建这个库。@adriano我知道这不是一个

您的问题在于,IL公共中间语言允许变量名中使用符号,但C不允许

例如:

RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7

一切都会好的

首先,你应该选一本关于C的书,现在你会知道为什么代码不能编译。我怀疑这个问题更多的是关于为什么这个反编译器会产生无法重新编译的代码-这是正确的吗?@rhughes是的,确实如此,在这种情况下我应该怎么做,特别是在这个函数中修改后重建这个库。@adriano我知道这不是一个正确的c语法,编译器无法构建这个项目,但是我的问题是,反编译后的代码是什么,如何修复它?!!!!如果你有答案,请与我们分享。。。谢谢我有点讽刺,对不起。IL比高级语言具有更少的名称限制,因为解析器更简单。C编译器,但不仅仅是它!为编译器生成的代码lambda、匿名类型、方法、枚举数等生成不可能的名称。为什么?因为他们确信它不会与您编写的代码冲突。简单有效。如何修复?重命名为有效名称。代码看起来仍然很奇怪,因为它是由编译器生成的,但它可以工作
RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7
RpcHubManager.OnTimerElapsedo__SiteContainer6.p__Site7