'<classname>' は継承元のインターフェイス '<interfacename>' が CLS に準拠していないため、CLS に準拠していません。

更新 : 2007 年 11 月

クラスまたはインターフェイスが <CLSCompliant(True)> でマーク付けされていますが、この継承元の型または実装している型が <CLSCompliant(False)> でマーク付けされているか、マークが付いていません。

クラスまたはインターフェイスを 共通言語仕様 (CLS) 準拠にするには、その継承階層全体を準拠させる必要があります。つまり、その継承元の型も (直接的、間接的継承を含めて) すべて CLS 準拠であることが必要です。同様に、クラスが 1 つ以上のインターフェイスを実装する場合、継承階層全体ですべて準拠している必要があります。

CLSCompliantAttribute をプログラミング要素に適用するときは、属性の isCompliant パラメータを True または False に設定して準拠または非準拠を示します。このパラメータの既定値はありません。値を指定する必要があります。

CLSCompliantAttribute を要素に設定しなかった場合は、非準拠であると見なされます。

既定では、このメッセージは警告です。警告を非表示にする方法や、警告をエラーとして扱う方法の詳細については、Visual Basic での警告の構成 を参照してください。

Error ID: BC40029

このエラーを解決するには

  • CLS 準拠にする必要がある場合は、この型を別の継承階層または別の実装スキームに定義します。

  • この型を現在の継承階層または実装スキームに残しておく必要がある場合は、CLSCompliantAttribute を定義から削除するか、<CLSCompliant(False)> でマーク付けします。

参照

概念

CLS 準拠コードの記述