情景就是这样,
当前项目中的ClassA
AssemblyB中的ClassB
AssemblyC中的ClassC
Class Heirarchy
ClassA:ClassB
{
}
ClassB:ClassC
{
}
分析器代码,
var declaredSymbol = _semanticModel.GetDeclaredSymbol( type);
var baseType = declaredSymbol.BaseType;
while (baseType != null && baseType.Name != "Object")
{
inheritanceCount++;
baseType = baseType.BaseType;
}
当type为ClassA时,它可以将ClassB检测为basetype,然后链断开,对于ClassB,它找不到BaseType(应该是ClassC,驻留在Assembly C中)