Можете ли вы передать IEnumerable <Type>и получить тип? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть классы, которые используют наследование, как в
Учитель: Человек: Entity: BaseObject
Студент: Человек: Entity: BaseObject
Компания: Entity: BaseObject et c.

Базовый объект имеет абстрактное свойство IEnumerable под названием Hierarchy
Entity class реализует Hierarchy как new List<Type>() { typeof(Entity) };
Person class реализует Hierarchy как new List<Type> { typeof(Person), typeof(Entity)}; et c.

В моем методе db.Save я пытаюсь по очереди применить объект к каждому из этих типов, чтобы я мог вызвать правильную хранимую процедуру.

        public static void SaveObject(BaseObject obj)
    {
        foreach (var type in obj.Hierarchy) //obj.Hierarchy is   IEnumerable<Type>
        {
            Object o = obj as type;
            //.....
        }
    }

но я получаю ошибка «тип является переменной, но используется как тип». Можно ли каким-либо образом привести свой дочерний объект к одному из его родительских типов в этих строках?

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