当我使用 Dotpeek 反编译 mvc web api 时,出现了一些错误。
这是反编译的代码:
public class SignalRNotifier : INotifier
{
private readonly IHubContext DashboardHub = GlobalHost.ConnectionManager.GetHubContext<Dashboard>();
public System.Threading.Tasks.Task DiscussionCreated(Delecs.Sapco.MinutesOfMeeting.Libs.DTO.Discussion.CreatedModel discussion, string[] users)
{
// ISSUE: reference to a compiler-generated field
if (SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__1 == null)
{
// ISSUE: reference to a compiler-generated field
SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__1 = CallSite<Func<CallSite, object, System.Threading.Tasks.Task>>.Create(Binder.Convert(CSharpBinderFlags.None, typeof (System.Threading.Tasks.Task), typeof (SignalRNotifier)));
}
// ISSUE: reference to a compiler-generated field
Func<CallSite, object, System.Threading.Tasks.Task> func = SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__1.Target;
// ISSUE: reference to a compiler-generated field
CallSite<Func<CallSite, object, System.Threading.Tasks.Task>> callSite = SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__1;
// ISSUE: reference to a compiler-generated field
if (SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__0 == null)
{
// ISSUE: reference to a compiler-generated field
SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__0 = CallSite<Func<CallSite, object, Delecs.Sapco.MinutesOfMeeting.Libs.DTO.Discussion.CreatedModel, object>>.Create(Binder.InvokeMember(CSharpBinderFlags.None, "onDiscussionCreated", (IEnumerable<Type>) null, typeof (SignalRNotifier), (IEnumerable<CSharpArgumentInfo>) new CSharpArgumentInfo[2]
{
CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, (string) null),
CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, (string) null)
}));
}
// ISSUE: reference to a compiler-generated field
// ISSUE: reference to a compiler-generated field
object obj = SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__0.Target((CallSite) SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__0, this.DashboardHub.Clients.Users((IList<string>) users), discussion);
return func((CallSite) callSite, obj);
}
}
我知道解决方案是手动重命名,但我不知道如何修复这条线:
SignalRNotifier.\u003C\u003Eo__2.\u003C\u003Ep__1 = CallSite<Func<CallSite, object, System.Threading.Tasks.Task>>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(System.Threading.Tasks.Task), typeof(SignalRNotifier)));