クラスのすべての祖先(クラスとインターフェイス)をリストに入れようとしていました。
このコードを試しましたが、機能しませんでした。
public static List<Class> AncestorList;
public static void GetAncestorList(Class curClass)
{
if(curClass.PrimaryAncestorType!=null)
{
Class primaryAncestor = curClass.PrimaryAncestorType.Resolve(new SourceTreeResolver()) as Class;
if(primaryAncestor !=null)
{
AncestorList.Add(primaryAncestor);//Add primary ancestor to the list.
GetAncestorList(primaryAncestor);//find the ancestors of the primary ancestor.
}
foreach (TypeReferenceExpression typ1 in curClass.SecondaryAncestorTypes )
{
Class secAncestor = typ1.Resolve(new SourceTreeResolver()) as Class;
if(secAncestor !=null)
{
AncestorList.Add(secAncestor);//Add secondary ancestor to the list.
GetAncestorList(secAncestor);//find ancestors of secondary ancestor.
}
}
}
コードのこの部分では、すべてのクラスとインターフェイスをAncestorListに収集しようとしました。しかし、リストで番号クラスを見つけようとすると、0が表示されました。テストプロジェクトには、親クラスとインターフェイスがほとんどありませんでした。エラーを見つけるのを手伝ってください。
次の方法でGetAncestorList関数を呼び出しました。
AncestorList=new List<Class>();
GetAncestorList(currentClass);
前もって感謝します、
ヴィノド