我想知道如何獲取對象的實際基礎對象?我有一個名爲MessageBase的基類,以及很多繼承此基類的類,它們本身都會被其他類以不同深度繼承。舉個例子:如何獲取對象的基礎對象(不只是BaseType)
一些類繼承這樣的:
MessageBase --> ValueMessage --> DoubleValueMessage
別人那樣:
MessageBase --> ValueMessage --> [some class] --> [some other class] --> TestMessage
我需要的是這樣的:我有這些繼承的一個類的對象,讓我們說DoubleValueMessage的一個實例。我不知道這個對象的類型,我只知道有一些嵌套的繼承,有一個基本對象(MessageBase),它的屬性需要設置。
現在我試圖獲得對該基礎對象的引用。所以試圖獲得ValueValue的DoubleValueMessage是基於,但我不明白如何。
我嘗試了這樣的:
public bool SetPropertyValue(object obj, string prop, object value)
{
var item = obj.GetType().GetProperty(prop);
//MessageBox.Show(obj.ToString());
if (item != null)
{
item.SetValue(obj, value);
return true;
}
else
{
if (obj.base != null)
{
SetPropertyValue(obj.base, prop, mb);
}
}
return false;
}
的想法是:我通過在對象(例如類型的DoubleValueMessage),我想設置(該屬性是一個基本對象甚至一個屬性在第一位?)和一個對象,需要替換給定的屬性,在我的情況下,MessageBase。所以我認爲遞歸迭代繼承層次結構是一個好主意,直到找到需要設置的屬性。
問題是:.base
關鍵字似乎不是獲取基礎對象的正確方法。
我該如何得到它?在此先感謝您的幫助!
爲什麼你需要使用反射?這是財產私人? –
是的,它是私人的。 – Robert