說我有在大會甲基類:確定一個子類的組件,帶在基類的方法
public class MyBaseClass{
public static Assembly GetMyAssembly(){
//determine the Assembly of my subclasses
}
}
然後我創建該類的組件B內的子類:
public class MySubClass : MyBaseClass {
}
從那裏,在我的領域特定的邏輯我調用MySubClass.GetMyAssembly()。此邏輯可能與MySubClass在同一個程序集中,或者它可能位於單獨的程序集中。我如何確定包含調用繼承方法的子類的程序集? (不重寫它)我試圖在System.Reflection中使用不同的Assembly.Get *()方法,但沒有任何運氣。
如上所述,如果GetMyAssembly實際上是一個**靜態**方法,那麼代碼將不會在您定義它的類之外的任何程序集中執行。另外,由於它是靜態的,所以也沒有「覆蓋」。 MySubClass.GetMyAssembly()會(除非你使用「new」操作符)總是指向MyBaseClass中定義的實現。 – 2010-08-16 13:53:15