У меня есть абстрактный класс:
abstract class AbstractDataExport
{
public string name;
public abstract bool ExportData();
}
У меня есть классы, которые получены из AbstractDataExport:
class XmlExport : AbstractDataExport
{
new public string name = "XmlExporter";
public override bool ExportData()
{
...
}
}
class CsvExport : AbstractDataExport
{
new public string name = "CsvExporter";
public override bool ExportData()
{
...
}
}
Можно ли сделать что-то подобное? (Псевдокод:)
foreach (Implementation imp in Reflection.GetInheritedClasses(AbstractDataExport)
{
AbstractDataExport derivedClass = Implementation.CallConstructor();
Console.WriteLine(derivedClass.name)
}
с выходом вроде
CsvExporter
XmlExporter
?
Идея заключается в том, чтобы просто создать новый класс, который получен из AbstractDataExport, поэтому я могу автоматически выполнять все реализации и добавлять, например, имена в раскрывающийся список. Я просто хочу закодировать производный класс без изменения чего-либо еще в проекте, перекомпилировать, бинго!
Если у вас есть альтернативные решения: tell em.
Спасибо