CA1413: Com 参照可能な値型ではパブリックでないフィールドを使用しません

Item [値]
規則 ID CA1413
カテゴリ Microsoft.Interoperability
互換性に影響する変更点 あり

原因

コンポーネント オブジェクト モデル (COM) に表示されると明確にマークされている値の型は、非パブリック インスタンス フィールドを宣言します。

規則の説明

COM から参照できる値型の非パブリック インスタンス フィールドは、COM クライアントで表示できます。 フィールドの内容をレビューして、公開するべきではない情報や、設計またはセキュリティに意図しない影響を及ぼす情報が含まれていないかどうかを確認してください。

既定では、すべてのパブリック値の型は COM に表示されます。 ただし、偽陽性を減らすために、この規則では、型の COM 表示範囲が明示的に指定されている必要があります。 格納アセンブリは、System.Runtime.InteropServices.ComVisibleAttributefalse に設定してマークする必要があり、型は ComVisibleAttributetrue に設定してマークする必要があります。

違反の修正方法

この規則の違反を修正し、フィールドを非表示のままにするには、値の型を参照型に変更するか、型から ComVisibleAttribute 属性を削除します。

どのようなときに警告を抑制するか

フィールドの公開が許容される場合は、この規則による警告を抑制しても安全です。

次の例は、規則に違反する型を示しています。

using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(false)]
namespace InteroperabilityLibrary
{
   [ComVisible(true)]
   public struct SomeStruct
   {
      internal int SomeValue;
   }
}

CA1407: Com 参照可能な型で静的メンバーを使用しません

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

関連項目