C# интерфейс, который имитирует стати c список типов - PullRequest
0 голосов
/ 31 января 2020

У меня есть метод утилиты сериализации, который в качестве одного из параметров принимает List<Type> в качестве одного из параметров.

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

Например, представьте, что у меня есть 3 класса:

public class Foo 
{
 // some members
}

public class Bar : Foo 
{
// additional members
}

public class Barf 
{
// more members
  public Bar item { get; set; }
}

Я хочу взять на себя ответственность знать обо всех последующих типах, которые Барф может использовать из Барфа и на их нисходящие нисходящие потоки (то есть я знаю о «Бар», но, возможно, не знаю о «Фу»). Или, возможно, я изменяю изменение наследования, где Bar : Foo1 и Foo1 : Foo.

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

Изначально я думал о создании интерфейса stati c, где каждый класс определял свои известные типы, но, увы, он мне недоступен. Поэтому вопрос заключается в том, как реализовать проект, в котором я могу передать тип в метод, и каждый тип знает, какие встроенные типы они используют (нет необходимости спускать / перечислять «родные» типы), и это определение List<Type> может быть рекурсивно спущен ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...