Как сделать так, чтобы результат декомпиляции ILspy C# был лучше?

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 ответа

Решение

Здесь есть отчет об ошибке: https://github.com/icsharpcode/ILSpy/issues/380

Кто-то написал:

Оказывается, проблема была связана с отсутствующей сборкой зависимостей базового типа. Я больше не вижу эту проблему. Я зашла в тупик из-за какого-то запутанного кода, но не уверена, что вы заинтересованы в том, чтобы помочь мне разобраться с этим, но я, несомненно, буду благодарна за помощь.

Вы сказали, что декомпилируете приложение для Windows Phone. То, что вы можете попробовать, это загрузить ссылочные сборки Windows Phone в ILSpy

ILspy - удивительный инструмент, но когда я использую его, декомпилирую dll, я получаю такой результат:

this.lastOrientation = base.get_Orientation();

но что это должно быть так:

this.lastOrientation = base.Orientation;

Orientation это, вероятно, свойство, а свойства в C# на самом деле являются своего рода синтаксическим сахаром, и они внутренне просто переводятся в методы getter и setter внутри. Вот почему вы видите декомпилированный код, как если бы он был вызовом метода и чтением обычная собственность.

Другие вопросы по тегам