如何使ILspy c#反编译结果有更好的格式?

时间:2015-03-31 12:59:08

标签: c# windows ilspy

ILspy是一个了不起的工具,但是当我使用它反编译dll时,我的结果是这样的:

this.lastOrientation = base.get_Orientation();

但应该是这样的:

this.lastOrientation = base.Orientation;

我怎样才能获得更好的结果?

更多这样的例子:

应该是:

battery_logo.Visibility = System.Windows.Visibility.Visible;

但我们得到的是:

battery_logo.set_Visibility(System.Windows.Visibility.Visible);

当我们构建时会出现如下错误:

'System.Windows.UIElement.Visibility.set': cannot explicitly call operator or accessor

2 个答案:

答案 0 :(得分:4)

此处有错误报告:https://github.com/icsharpcode/ILSpy/issues/380

有人写道:

  

事实证明,该问题与缺少依赖性程序集和基本类型有关。我不再看到那个问题。我在一些混淆代码上受到了阻碍,不确定你是否有兴趣帮助我完成这项工作,但我肯定会感谢你的帮助。

您说您正在反编译Windows Phone应用。您可以尝试在ILSpy中加载Windows Phone的引用程序集

答案 1 :(得分:1)

  

ILspy是一个了不起的工具,但是当我使用它反编译dll时,我有   结果如下:

this.lastOrientation = base.get_Orientation();
     

但应该是这样的:

this.lastOrientation = base.Orientation;

Orientation可能是一个属性,c#中的属性实际上是一种语法糖,它们在内部简单地转换为getter&引擎盖下的setter方法 - 这就是为什么你看到反编译代码就好像它是对方法的调用和常规属性的读取一样。