反编译再打包时遇到意外字符 $ 等怎么半?

成功反编译了一个.dll文件,做了修改后,编译一直通不过,因为反编译出来的代码中含有大量类似下面的语句:
static System.Func <>f__am$cache21;
static System.Func <>f__am$cache22;
static System.Func <>f__am$cache23;
static System.Func <>f__am$cache24;
static System.Func <>f__am$cache25;
问一下有什么办法吗?

这是被混淆的代码,全部转换为Lambda表达式了,需要手工解析。

换 ilspy 看看,它的反编译能力强一些。

有别的办法可以反混淆吗?