1
我想在C#中使用反射的鴨子打字。我有一個隨機類型的對象,我想查找它是否實現了一個具有特定名稱的接口,如果它確實 - 檢索對該接口子對象的引用,以便稍後可以通過該接口讀取(獲取)屬性值。如何在C#中使用反射來檢索對子對象的引用?
實際上我需要as
使用反射。
第一部分是容易
var interfaceOfInterest =
randomObject.GetType().GetInterface("Full.Interface.Name.Here");
這將任一檢索接口描述或空。我們假設它不是null。
所以現在我有一個對象引用一個肯定會實現該接口的對象。
如何使用僅反射來獲取子對象的檢索?
這出於某種原因沒有按在我的情況下工作 - 我有一個巨大的繼承層次結構,既沒有'動態'綁定也沒有'Get Value()'與對象接口一起工作,所以我需要到達子對象。 – sharptooth
沒有這樣的東西作爲子對象。你能發表一個簡短但完整的例子,詳細說明你遇到的問題嗎?如果你將C投給了我,你可以將它投回來,如果有一個子對象實現了C的子對象,那麼你不能退後一步,GC就會全部失控。所以如果你把C賦給I,那個引用仍然代表C對象。 –
無論如何,我發現問題是因爲我在調用'GetProperty()'時使用了錯誤的引用。它按照你所描述的那樣工作。謝謝。 – sharptooth