Учитывая тип C #, получить его базовые классы и реализованные интерфейсы
работаю над игровым движком на C #. Класс ям работает над называетсяCEntityRegistry
и его работа состоит в том, чтобы отслеживать множество случаевCEntity
в игре. Моя цель - иметь возможность запроситьCEntityRegistry
с заданным типом, и получить список каждогоCEntity
такого типа
Что я'Я хотел бы сделать, поэтому, сохранить карту:
private IDictionary m_TypeToEntitySet;
И обновите реестр таким образом:
private void m_UpdateEntityList()
{
foreach (CEntity theEntity in m_EntitiesToRemove.dequeueAll())
{
foreach (HashSet 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
- Как бы мне написать?