次の方法で共有


CA1409: COM 参照可能な型は作成可能でなければなりません

TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

[カテゴリ]

Microsoft.Interoperability

互換性に影響する変更点

なし

原因

コンポーネント オブジェクト モデル (COM: Component Object Model) から参照できると明確にマークされている参照型に、パブリックのパラメーター付きコンストラクターが含まれますが、パブリックの既定 (パラメーターなし) コンストラクターが含まれません。

規則の説明

パブリックの既定コンストラクターがない型は、COM クライアントで作成できません。ただし、別の手段で型を作成してクライアントに渡すことができる場合 (メソッド呼び出しの戻り値を使用するなど)、COM クライアントからその型にアクセスできます。

この規則では、System.Delegate から派生した型は無視されます。

既定で COM から参照できるものは、アセンブリ、パブリック型、パブリック型のパブリック インスタンス メンバー、パブリック値型のすべてのメンバーです。

違反の修正方法

この規則違反を修正するには、パブリックの既定コンストラクターを追加するか、型から System.Runtime.InteropServices.ComVisibleAttribute を削除します。

警告を抑制する状況

オブジェクトを作成して COM クライアントに渡すための別の方法がある場合は、この規則による警告を抑制しても安全です。

関連規則

CA1017: アセンブリに ComVisibleAttribute を設定します

参照

概念

相互運用のための .NET 型の要件

その他の技術情報

アンマネージ コードとの相互運用