代码检查:所需基类型与其他类型冲突
该检查会报告使用了多个引用彼此冲突的 [BaseTypeRequired]属性的类。 当一个属性要求继承自某个具体类型,而另一个属性要求继承自不同且不兼容的具体类型时,就会发生这种情况。 由于类只能有一个基类,因此这些要求无法同时满足。
解决方法是移除冲突的属性用法,或者重新设计所需基类型,使装饰类可以同时满足要求。
using System;
using JetBrains.Annotations;
public class Bar { }
public class Foo : Bar { }
public class Foo2 : Bar { }
[BaseTypeRequired(typeof(Bar))]
[BaseTypeRequired(typeof(Foo))]
public class MyComponentAttribute : Attribute
{
}
[BaseTypeRequired(typeof(Foo2))]
public class MyComponent2Attribute : Attribute
{
}
[MyComponent]
[MyComponent2]
public class MyComponentImpl
{
}
using System;
using JetBrains.Annotations;
public class Bar { }
public class Foo : Bar { }
public class Foo2 : Bar { }
[BaseTypeRequired(typeof(Bar))]
[BaseTypeRequired(typeof(Foo))]
public class MyComponentAttribute : Attribute
{
}
[BaseTypeRequired(typeof(Foo2))]
public class MyComponent2Attribute : Attribute
{
}
[MyComponent]
public class MyComponentImpl : Foo
{
}
2026年 5月 8日