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?