我正在嘗試編寫一個程序來幫助分析/記錄我們的應用程序之一。 我希望能夠獲得Interator函數可能產生的所有對象的列表。例如,我想能夠對這個代碼運行分析,並與名字「A類」,「B類」和「C類」結束:使用反射來確定Interator函數可能產生的類?
Public Iterator Function Sample(status As Boolean) As IEnumerable
If status = True Then
Yield New ClassA
Else
Yield New ClassB
Yield New ClassC
End If
End Function
這可能使用反射或者也許是Mono.Cecil?
這樣的迭代器是否總是和你所顯示的一樣直接(每個'Yield'語句直接創建返回的對象)?如果沒有,我會說它是'Object'和任何派生它的東西,或者你必須解決停機問題。 –
是的。有一個可能返回的類的列表,我可以訪問這個列表。 – Slapout