c# 中的可继承 class-specific 属性?

Inheritable class-specific properties in c#?

在这里我可能需要一个设计模式:我有一个按类型生产实例的工厂。我希望用户能够选择类型,所以我需要 类型 的标题,然后是类型的共同祖先的列表。

现在,我想列举列表,并打印标题。 (不行,静态标题属性无法从祖先访问)

然后,我想打印一个实例的标题。无法这样做,因为无法从实例访问 class 属性。

如果我使用连接类型和标题的字典,标题又是无法从实例访问的,也无法从类型等访问。

我已经使用 Delphi 20 年了,每天都使用虚拟构造函数和虚拟 class 属性。我有点喜欢 C#,但多年后,我仍然没有针对此类事情的舒适解决方案。 (提前感谢您的帮助)

使用System.Reflection您可以枚举程序集的所有类型,检查它们是否派生自给定的基类型或实现某个接口。 您还可以访问非 public 字段或属性(静态或实例)。 所以也许这是要走的路。

如果 class 层次结构是您自己的代码,您还 could/should 只需稍微重新设计它即可访问现在受限的成员..