CA1017: アセンブリに ComVisibleAttribute を設定します
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 {}