我正在尝试开发一个自定义的fxcop
规则,以检查以基类名称结尾的派生类的名称。
我主要关心的是Fxcop.Sdk
中是否有任何属性,以了解该特定类是否派生自任何基类?如果是,那怎么办?
如何执行此规则?
最佳答案
是的,可以。看一下下面的图片:
您在此处看到的是introspector的屏幕截图,它是一个可帮助您开发FxCop规则的工具。
如您所见,每个类都有一个属性BaseType
和BaseClass
。您可以使用它们来检查类是否继承自任何东西。
请注意,在自省模型中,例如,未从任何事物派生的类都显示为从Object
派生。
您可以跳过那些(以及任何其他可能的错误):
public override ProblemCollection Check(TypeNode type)
{
ClassNode classNode = type as ClassNode;
if (classNode == null)
return;
if (classNode.BaseType == null)
return;
if (classNode.BaseType == FrameworkTypes.Object)
return;
// Namechecking logic
return Problems;
}