![](/img/trans.png)
[英]Open Emitted assembly generated code appears empty in Reflector when it is not.
[英]Reflector and compiler generated code
我有一個dll,在Reflector中將其反匯編,然后生成一個類。 該類包含無法在Visual Studio中編譯的代碼。
我認為這是有前途的IL代碼,但是如何從中生成更高級別的c#。
似乎yield和IEnumerator生成類似<>1__state;
東西<>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;
該IL來自迭代器塊。 迭代器是可怕的手動編寫,並從迭代器塊底層IL證明了什么樣的編譯器為你做的現實。 不勝感激,您不必自己動手!
您可以嘗試主要通過MoveNext()
將它們組合在一起,但是不要指望奇跡。 您可能還會發現,重命名字段(以消除諸如<>
前綴之類的內容)很長的路要走。
然而; 我希望做的最好的事情是理解的代碼試圖做的,並停止試圖簡單地偷 借其實現。
您應該查看HTML Agility Pack 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.