void CollectTypes(List<TypeDefinition> types, TypeMemberCollection members)
{
foreach (var member in members)
{
switch (member.NodeType)
{
case NodeType.InterfaceDefinition:
case NodeType.ClassDefinition:
{
var typeDefinition = ((TypeDefinition)member);
types.Add(typeDefinition);
CollectTypes(types, typeDefinition.Members);
break;
}
case NodeType.EnumDefinition:
{
types.Add((TypeDefinition) member);
break;
}
}
}
}