我有一个抽象类:
abstract class AbstractDataExport
{
public string name;
public abstract bool ExportData();
}
Run Code Online (Sandbox Code Playgroud)
我有从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()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?(伪代码:)
foreach (Implementation imp in Reflection.GetInheritedClasses(AbstractDataExport)
{
AbstractDataExport derivedClass = Implementation.CallConstructor();
Console.WriteLine(derivedClass.name)
}
Run Code Online (Sandbox Code Playgroud)
输出像
CsvExporter
XmlExporter
Run Code Online (Sandbox Code Playgroud)
?
这背后的想法是创建一个派生自AbstractDataExport的新类,这样我就可以自动遍历所有实现并将名称添加到Dropdown-List.我只是想编译派生类而不改变项目中的任何其他内容,重新编译,宾果游戏!
如果您有其他解决方案:告诉他们.
谢谢