CA1409: COM 参照可能な型は作成可能でなければなりません
TypeName |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
[カテゴリ] |
Microsoft.Interoperability |
互換性に影響する変更点 |
なし |
原因
コンポーネント オブジェクト モデル (COM: Component Object Model) から参照できると明確にマークされている参照型に、パブリックのパラメーター付きコンストラクターが含まれますが、パブリックの既定 (パラメーターなし) コンストラクターが含まれません。
規則の説明
パブリックの既定コンストラクターがない型は、COM クライアントで作成できません。ただし、別の手段で型を作成してクライアントに渡すことができる場合 (メソッド呼び出しの戻り値を使用するなど)、COM クライアントからその型にアクセスできます。
この規則では、System.Delegate から派生した型は無視されます。
既定で COM から参照できるものは、アセンブリ、パブリック型、パブリック型のパブリック インスタンス メンバー、パブリック値型のすべてのメンバーです。
違反の修正方法
この規則違反を修正するには、パブリックの既定コンストラクターを追加するか、型から System.Runtime.InteropServices.ComVisibleAttribute を削除します。
警告を抑制する状況
オブジェクトを作成して COM クライアントに渡すための別の方法がある場合は、この規則による警告を抑制しても安全です。
関連規則
CA1017: アセンブリに ComVisibleAttribute を設定します