我试图使用最新版本的.NET分解我的dnSpy核心3.1二进制文件,但输出如下:

原来的方法:
public async Task<List<FirmwarePackage>> CalculatePackagesDeltaAsync(List<FirmwarePackage> firmwarePackages) {
var packagesToUpdate = await GetPackageDifferences(firmwarePackages);
// sort packages
// "version-update" packages should be updated last, with "mez" being last
packagesToUpdate = packagesToUpdate
.OrderBy(x => x.TargetType)
.ThenBy(x => x.Name)
.ToList();
packagesToUpdate.RemoveAll(x => x.Name == "version-update");
var versionPkgs = firmwarePackages
.Where(x => x.Name == "version-update")
.OrderBy(x => x.TargetType);
packagesToUpdate.AddRange(versionPkgs);
return packagesToUpdate;
}这是正常的吗?我怎样才能把它变成更容易理解的东西。试着调试这是一场噩梦。
在github上,issues是不可用的,这就是我在这里问的原因。
发布于 2020-12-02 15:08:58
你能看到的是完全正常的。您所裁剪的只是生成代码的一部分。
突出显示的代码保存局部变量(作为状态机的字段)以保留其状态。
代码生成非常复杂,因为有几个用例是以不同的方式处理的。但是,一般性的想法在以下文章中写得很好:
Stephen写了一篇博文,它揭示了.NET团队在.NET 5中完成的一些优化。
发布于 2022-08-27 23:04:17
对于那些在家观看的人来说,在他们的评论中回响@yoelhalb
实际上,它是选项-> decompiler ->C#->显示隐藏的反编译生成的类和方法中的一个设置。
https://stackoverflow.com/questions/65110369
复制相似问题