Наследуемые свойства, зависящие от класса, в c#?

#c# #static #virtual

Вопрос:

Вероятно, мне здесь нужен шаблон проектирования: у меня есть фабрика, которая производит экземпляры по типу. Я хочу, чтобы пользователь мог выбрать тип, поэтому мне нужна подпись для типа, а затем список общего предка типов.

Теперь я хотел бы перечислить список и распечатать подписи. (Никто не может этого сделать, свойства статических подписей недоступны для предка)

Затем я хотел бы напечатать подпись экземпляра. Невозможно это сделать, так как свойства класса недоступны из экземпляра.

Если я использую словарь, который соединяет тип и заголовок, подписи снова недоступны ни для экземпляра, ни для типа и т. Д.

Я использую Delphi уже 20 лет и каждый день использую виртуальные конструкторы и свойства виртуальных классов. Мне вроде как нравится C#, но по прошествии многих лет у меня все еще нет удобного решения для таких вещей. (Заранее спасибо за помощь)

Ответ №1:

С помощью System.Reflection вы можете перечислить все типы сборки, проверить, являются ли они производными от данного базового типа или реализуют определенный интерфейс. Вы также можете получить доступ к непубличным полям или свойствам (статическим или экземплярам). Так что, может быть, это и есть правильный путь.

Если иерархия классов-это ваш собственный код, вы также можете/должны просто немного изменить его, чтобы получить доступ к членам, которые теперь ограничены..