Dado um tipo C #, obtenha suas classes base e interfaces implementadas

Eu estou trabalhando em um motor de jogo em c #. A aula em que estou trabalhando é chamadaCEntityRegistry, e seu trabalho é acompanhar os muitos casos deCEntity no jogo. Meu objetivo é poder consultar oCEntityRegistry com um determinado tipo, e obter uma lista de cadaCEntity desse tipo.

O que eu gostaria de fazer, portanto, é manter um mapa:

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

E atualize o registro assim:

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);

            }
        }

O problema que tenho é que não tem funçãoType.GetAllBaseClassesAndInterfaces- Como eu iria escrever isso?

questionAnswers(4)

yourAnswerToTheQuestion