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