我有一个我在Reflector中反汇编的DLL,然后生成一个类.该类包含无法在Visual Studio中编译的代码.
我认为它是leagl IL代码,但是如何从中生成更高级别的c#.
似乎yield和IEnumerator生成类似<>1__state;IL的东西,它们不会编译.
有谁知道如何从包含这种IL的反射器生成一个类?
是否有反射器插件可以解决这个问题?
private sealed class <Rule_Document>d__0 : IEnumerable<HtmlTag>, IEnumerable, IEnumerator<HtmlTag>, IEnumerator, IDisposable
{
private int <>1__state;
private HtmlTag <>2__current;
public HtmlParser <>4__this;
private int <>l__initialThreadId;
public HtmlTag <htmlTag>5__1;
Run Code Online (Sandbox Code Playgroud)
IL来自迭代器块.迭代器是可怕的手动编写,并从迭代器块底层IL证明了什么样的编译器为你做的现实.要感谢你没有自己动手!
你可以尝试将它们主要放在一起MoveNext(),但不要指望奇迹.您可能还会发现重命名字段(以摆脱<>前缀之类的东西)有很长的路要走.
然而; 我希望做的最好的事情是要了解什么代码试图做的,并停止试图简单地偷 借其实现.