Учитывая тип C #, получить его базовые классы и реализованные интерфейсы

Я работаю над игровым движком на C #. Класс, над которым я работаю, называетсяCEntityRegistryи его работа состоит в том, чтобы отслеживать множество случаевCEntity в игре. Моя цель - иметь возможность запроситьCEntityRegistry с заданным типом, и получить список каждогоCEntity такого типа

Поэтому я хотел бы сохранить карту:

private IDictionary<Type, HashSet<CEntity>> m_TypeToEntitySet;

И обновите реестр таким образом:

private void m_UpdateEntityList()
        {
            foreach (CEntity theEntity in m_EntitiesToRemove.dequeueAll())
            {
                foreach (HashSet<CEntity> set in m_TypeToEntitySet.Values)
                {
                    if (set.Contains(theEntity))
                        set.Remove(theEntity);
                }
            }
            foreach (CEntity theEntity in m_EntitiesToAdd.dequeueAll())
            {
                Type entityType = theEntity.GetType();
                foreach (Type baseClass in entityType.GetAllBaseClassesAndInterfaces())
                  m_TypeToEntitySet[baseClass].Add(theEntity);

            }
        }

У меня проблема в том, что нет функцииType.GetAllBaseClassesAndInterfaces- Как бы мне написать?

Ответы на вопрос(4)

Ваш ответ на вопрос