DotPeek反编译.dll文件

时间:2016-02-05 15:45:22

标签: c# decompiling

当我反编译X.dll文件时,我无法重建它,我收到以下错误

  • 严重级代码说明项目文件行抑制状态 错误CS1001标识符预期库C:\ Users \ ... \ Managers \ RpcHubManager.cs 52活动

为什么dotpeek会创建这个奇怪的代码,“o__SiteContainer6。<> p__Site7”,这是什么意思??,我怎么能解决这个问题?,提前谢谢

private void OnTimerElapsed(object sender)
        {
            System.Threading.ThreadPool.QueueUserWorkItem(delegate(object n)
            {
                foreach (System.Collections.Generic.KeyValuePair<SessionManager, string> current in RpcHubManager.Dashboard_Connections)
                {
                    System.Collections.Generic.List<SymbolMinimizedDTO> updatedSymbolsPrices = this.trader_manager.GetUpdatedSymbolsPrices(current.Key, false);
                    if (RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7 == null)
                    {
                        RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7 = CallSite<Action<CallSite, object, string>>.Create(Binder.InvokeMember(CSharpBinderFlags.ResultDiscarded, "updateSymbols", null, typeof(RpcHubManager), new CSharpArgumentInfo[]
                        {
                            CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
                            CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
                        }));
                    }
                    RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7.Target(RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7, this.hubContext.Clients.Client(current.Value), Json.Encode(updatedSymbolsPrices));
                }
            });
        }

1 个答案:

答案 0 :(得分:1)

您的问题是因为IL(通用中间语言)允许变量名中的<>符号,但C#不会。

例如:

RpcHubManager.<OnTimerElapsed>o__SiteContainer6.<>p__Site7

由于<OnTimerElapsed>o__SiteContainer6<>p__Site7名称无法编译。

将其替换为

RpcHubManager.OnTimerElapsedo__SiteContainer6.p__Site7

一切都会有效