0
我想反编译一些C#代码使用IEnumerators与yield-return,但没有反编译器麻烦将变量重命名为有效的C#名称。我尝试过ILSpy,JustDecompile,dotPeek和Reflector,没有成功。C#如何反编译yield-return枚举
反编译到目前为止例如:
private IEnumerator _WaitForSecondsThenStop(float startToFadeTime, float fadeOutLength)
{
AudioObject.<_WaitForSecondsThenStop>c__Iterator0 <_WaitForSecondsThenStop>c__Iterator = new AudioObject.<_WaitForSecondsThenStop>c__Iterator0();
<_WaitForSecondsThenStop>c__Iterator.startToFadeTime = startToFadeTime;
<_WaitForSecondsThenStop>c__Iterator.fadeOutLength = fadeOutLength;
<_WaitForSecondsThenStop>c__Iterator.<$>startToFadeTime = startToFadeTime;
<_WaitForSecondsThenStop>c__Iterator.<$>fadeOutLength = fadeOutLength;
<_WaitForSecondsThenStop>c__Iterator.<>f__this = this;
return <_WaitForSecondsThenStop>c__Iterator;
}
ILSpy是假想able to编译枚举正确,但它不为我工作。我读过的地方可能是由于代码的一些优化导致ILSpy无法识别这些模式,所以它可能是由此引起的。
但是,我想问的是:是否有一个C#反编译器,将所有的字段,变量和类重命名为有效的C#名称?我对状态自动机疯狂很好,只要它编译为一个合适的C#代码即可。
这种类型的问题是专门针对SO的话题。我希望有5k +网站代表的人知道这一点。 – itsme86
哦,是的,我已经在考虑1个解决方案,它会在主题上(至少是某种程度上),而这只是用一些正则表达式“手动”替换它。 – kajacx