说我有在大会甲基类:确定一个子类的组件,带在基类的方法
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