TypeName |
MarkAssembliesWithComVisible |
CheckId |
CA1017 |
分類 |
Microsoft.Design |
互換性に影響する変更点 |
なし |
原因
アセンブリには、それに適用される System.Runtime.InteropServices.ComVisibleAttribute 属性がありません。
規則の説明
ComVisibleAttribute 属性によって、COM クライアントからマネージ コードにアクセスする方法を決定します。 アセンブリで COM の参照範囲を明示することをお勧めします。 COM の参照範囲は、アセンブリ全体に設定し、個々の型と型のメンバー用にオーバーライドできます。 この属性がない場合、アセンブリのコンテンツは COM クライアントから参照できます。
違反の修正方法
この規則違反を修正するには、アセンブリにこの属性を追加します。 アセンブリを COM クライアントから参照できないようにするには、属性を適用し、属性値を false に設定します。
警告を抑制する状況
この規則による警告は抑制しないでください。 アセンブリを参照できるようにする場合、この属性を適用し、値を true に設定します。
使用例
ComVisibleAttribute 属性を適用したアセンブリを次の例に示します。例では、COM クライアントからこのアセンブリを参照できなくなります。
Imports System
<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
using System;
[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}
using namespace System;
[assembly: System::Runtime::InteropServices::ComVisible(false)];
namespace DesignLibrary {}