在C#中,如何評估一個類的任何成員是否包含switch case或者其他構造?我想在單元測試中檢查一個班級是否已寫入switch...case
或鏈接if....else
。在C#中,我該如何評估一個類的任何成員是否包含switch case或其他構造?
我知道如何使用反射獲得類的成員,但無法找到如何獲得實際代碼的interwebs上的示例。從this SO貼子我發現你可以使用MethodBase.GetMethodBody()
,here。這對於返回MethodBody獲取變量似乎很不錯,但無法找到如何獲取switch...case
或if...else
是否存在的信息。
任何解決方案?
你看到的['MethodBody.GetILAsByteArray()'方法](https://msdn.microsoft.com /en-us/library/system.reflection.methodbody.getilasbytearray.aspx)? –
您是否在尋找*任何*控制流程或僅僅這兩個構造具體?當它被編譯成IL時,這些結構不再存在。所以如果你只想定位這些結構,你就會嘗試從IL中反向工程。 –
@RowlandShaw - 我撇清了它,因爲我真的不知道它會有什麼幫助。我認爲它會有一些特定的IL,然後我可以搜索。我正確地認爲'switch ... case'和'if ... else'都編譯成相同的IL指令嗎? – Dib