同様の質問を見つけることができなかったのは奇妙ですが、これは実際に私が望むものであり、派生クラスのすべての親クラスを見つけます。
私はそれが私のために働くことを願ってコードをテストしました:
void WriteInterfaces()
{
var derivedClass = new DerivedClass();
var type = derivedClass.GetType();
var interfaces = type.FindInterfaces((objectType, criteria) =>
objectType.Name == criteria.ToString(),"BaseClass");
foreach(var face in interfaces)
{
face.Name.Dump();
}
}
interface BaseInterface
{}
class BaseClass : BaseInterface {}
class BaseClass2 : BaseClass {}
class DerivedClass : BaseClass2{}
基本的に、ここでの主な目的は、派生クラスが何らかの形で基本階層のどこかで基本クラスを継承しているかどうかを確認することです。
ただし、このコードは null を返し、インターフェイスでのみ機能します。