的所有繼承類我有一個抽象類:獲取一個抽象類
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得出這樣我就可以通過全部實現自動循環和名稱添加到例如下拉框中列出一個新的類。 我只想編寫派生類而不更改項目中的任何其他內容,重新編譯,賓果!
如果您有其他解決方案:告訴em。
感謝
一個類型可以同時不抽象和非類嗎? – user2341923 2014-09-11 19:14:31
這絕對是瘋了!我不知道你可以用反射來做這樣的事情。 – CanadaIT 2016-02-23 05:01:23
@ user2341923一個枚舉? – Cesar 2016-10-23 10:32:31