NET 3.5的範圍內時,一個派生類的實例的引用,使用C#已經經由虛擬方法調用從一個如何從基類
我有一個類(A)的一個實例派生類(B)。在方法(類A的一個方法)中,我發現了調用類B的類型,並且使用了反射,我檢查了類B並發現了一個我想要訪問的屬性。
有什麼辦法通過反射來獲得B類的實例引用嗎?我唯一的對象是我的'這個'參考。
[編輯]
解釋說,我不是爲需要做這個完全堅果的方式:我的班級T4NmpBase(A類)。我無法控制我繼承的類(TextTransformation)或繼承自我的類(TextTemplating - B類)。如果退出但希望使用「主機」屬性,但不希望爲編寫生成TextTransformation類的文本模板代碼的程序員承擔任何負擔。
//
// this is my class
//
public abstract partial class T4NmpBase : Microsoft.VisualStudio.TextTemplating.TextTransformation {
public override void Initialize()
{
//
// determine derived class info and get value of "Host" property if it exists
//
}
}
//
// this class is generated by T4 in a project that I have no control over
//
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
public partial class PPTest : T4_NMP_Base.T4NmpBase {
public virtual global::Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost Host { ... }
public override void Initialize()
{
base.Initialize();
}
}
有可能與反思,但它確實聽起來像你的設計有問題。不要忘記,反思很慢。儘管如此,你可能有一個很好的理由。你沒有說。 – 2010-06-21 03:49:47