特定のタイプのすべての親タイプ(基本クラスとインターフェース)を検索できます。すべての親タイプを見つける(基本クラスとインターフェースの両方)
EG私はが BのCのDであることを確認したいと最良の方法はこれを行うにいただきましたEとは
オブジェクト
class A : B, C { }
class B : D { }
interface C : E { }
class D { }
interface E { }
を持っている場合は?これを行うためのリフレクション方法はありますか、私は何かを作る必要があります。
==== EDIT ====
だからこのような何か?
public static IEnumerable<Type> ParentTypes(this Type type)
{
foreach (Type i in type.GetInterfaces())
{
yield return i;
foreach (Type t in i.ParentTypes())
{
yield return t;
}
}
if (type.BaseType != null)
{
yield return type.BaseType;
foreach (Type b in type.BaseType.ParentTypes())
{
yield return b;
}
}
}
私は自分自身ではなくてもうまくいくと思っていました。