コードインスペクション:必要な基本型が他の型と競合する
このインスペクションは、互いに競合する基底型を参照する複数の [BaseTypeRequired] 属性を使用するクラスを報告します。 これは、ある属性が特定の具象型からの継承を必要とする一方で、別の属性が互換性のない別の具象型を必要とする場合に発生します。 クラスは基底クラスを 1 つしか持つことができないため、これらの要件を同時に満たすことはできません。
解決策としては、競合する属性の使用を削除するか、装飾されたクラスが満たせるように必要な基本型を再設計することです。
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 年 6 月 12 日