給定兩個.Net類型,類型A和類型B,如何確定從類型B創建的類型A(包括類型A的子類)的所有屬性調用?確定.Net中兩個類之間的屬性調用
0
A
回答
5
您必須找到所有可執行成員(方法,屬性,事件,構造函數)並調用MethodInfo.GetMethodBody來獲取原始IL。然後解析該IL並查找對屬性的訪問。不要忘記獲取基類中聲明的虛方法。
祝你好運 - 6個月見!說真的,這並不容易,聽起來像是一個不尋常的要求。這裏的大圖是什麼?
如果您不需要在執行時執行此操作,但只想查看依賴關係,則可能會發現NDepend將對您有所幫助。 (嘿,也許NDepend公開了一個API,您可以在執行時使用它 - 值得檢查,我想。)
0
你可以使用StackFrame和StackTrace類來做到這一點,但這通常被認爲是不好的做法。
1
根據Patrick Smacchia的博客Mono.Cecil vs. System.Reflection的說明,NDepend使用Mono.Cecil來分析程序集。
也許它可能會有用。
0
該解決方案涉及代碼的靜態分析 - 本質上我們正在尋找B類型的依賴關係。開箱即用的.Net反射API只能帶你到目前爲止,不得不求助於解析IL - 正如喬恩在下面指出的那樣,這不能掉以輕心。這些問題的答案在下面,導致一對夫婦庫,可以幫助,我將調查他們兩個:
相關問題
- 1. 該調用在兩種方法或屬性之間不明確
- 2. 確定兩個類中的所有屬性是否相等
- 3. 在兩個類別之間正確使用塊回調
- 4. jQuery Selector兩個屬性值之間
- 5. 兩個類之間的IBOutlets屬性不保留。釋放?
- 6. 布爾屬性和兩個RadioButton之間的雙向綁定
- 7. 以下方法或屬性之間的調用不明確
- 8. 使用兩個類屬性
- 9. 確定兩個頻率之間的不諧調水平
- 10. .NET中兩個方法實現之間的性能比較
- 11. IronPython類中的.NET屬性
- 12. 可可在2個屬性不同類別之間的綁定
- 13. 確定數組中兩個特定元素之間的距離?
- 14. SAS兩個時間屬性之間的月份
- 15. 確定兩個日期之間是否落在兩個日期之間
- 16. VB.NET確定兩個日期和時間之間的時間差
- 17. jQuery將屬性存儲到兩個類之間的數組或對象中
- 18. 在SQL中沒有類似屬性的兩個表之間選擇語句?
- 19. 或兩個函數之間的調用
- 20. 兩類類屬性定義的區別?
- 21. .NET確定鼠標是在兩個任意點之間繪製的線條
- 22. NSDateComponents在兩個日期之間獲取日期的日期屬性不正確
- 23. 兩個類之間的引用
- 24. 兩個屬性之間的條件的數據驗證屬性asp.net mvc
- 25. 類之間的鏈接屬性
- 26. 安裝了兩個網格包:以下方法或屬性之間的調用不明確
- 27. 使用屬性在兩個窗體之間傳遞數據
- 28. .NET XmlSerializer當兩個類具有同名屬性時的錯誤
- 29. 兩類的屬性
- 30. 確定時間是否在兩個其他時間之間
@喬恩 - 大局觀在MS的ORM框架類型CRM。儘管我們會在運行時要求信息,但靜態分析將會很好。我會調查ndepend,謝謝你的提示。我會在不到6個月的時間內回覆我的發現!)。提供 – 2009-02-07 08:38:12