Хорошо, у меня есть следующая структура. В основном это плагин архитектурыКак получить название класса
// assembly 1 - Base Class which contains the contract
public class BaseEntity {
public string MyName() {
// figure out the name of the deriving class
// perhaps via reflection
}
}
// assembly 2 - contains plugins based on the Base Class
public class BlueEntity : BaseEntity {}
public class YellowEntity : BaseEntity {}
public class GreenEntity : BaseEntity {}
// main console app
List<BaseEntity> plugins = Factory.GetMePluginList();
foreach (BaseEntity be in plugins) {
Console.WriteLine(be.MyName);
}
Я хотел бы заявление
be.MyName
мне сказать, является ли объект BlueEntity, YellowEntity или GreenEntity. Важно то, что свойство MyName должно быть в базовом классе, потому что я не хочу переопределять свойство в каждом плагине.
Возможно ли это в C#?
Это не совсем то, что спрашивающий был (см. вопрос о комментариях, которые он добавил к методу MyName) – hhafez 2008-12-03 23:00:20