У меня есть иерархия классов, которые я пытаюсь получить имена Типа из:ПолноеИмя родового базовый типа
class Alice
:ThirdPersonCharacter<Foo, Bar>
class ThirdPersonCharacter<A, B>
:BaseHumanoidCharacter<A, B>, ISomeInterface
where A : Something
class BaseHumanoidCharacter<A, B>
: Entity,
ISomeOtherInterface
where A : Something
Я хочу, чтобы все базовые типов Алисы, так что я это делаю :
private static IEnumerable<Type> BaseTypes(Type t)
{
while (t.BaseType != null)
{
yield return t.BaseType;
t = t.BaseType;
}
}
var aliceTypes = baseTypes(typeof(Alice)).Select(a => a.AssemblyQualifiedName).ToArray();
проблема тип это найти для BaseHumanoidCharacter является:
{Name = "BaseHumanoidCharacter`2" FullName = null}
конечно, что я действительно хочу является:
{Name = "BaseHumanoidCharacter`2[[X.Y.Z.Foo, AssemblyName, version=123, Culture=whatever, PublicKey=stuff],[X.Y.Z.Bar, AssemblyName, version=123, Culture=whatever, PublicKey=stuff]]", FullName = "Something that isn't null"}
Есть ли способ, чтобы изменить эту систему, чтобы дать мне полезные типы с их родовыми параметрами заполненных, и их ПолноеИмя не равно нулю?
Для того, чтобы полностью понять иерархию классов, было бы полезно, если вы также показать класс символов, что Алиса является производным от - или это опечатка ? – Markus
Было да, извините. Я имел в виду более специфический ThirdPersonCharacter. – Martin