CA1017: Contrassegnare gli assembly con ComVisibleAttribute
TypeName |
MarkAssembliesWithComVisible |
CheckId |
CA1017 |
Category |
Microsoft.Design |
Breaking Change |
Non sostanziale |
Causa
A un assembly non è applicato l'attributo System.Runtime.InteropServices.ComVisibleAttribute.
Descrizione della regola
L'attributo ComVisibleAttribute determina le modalità con cui i client COM accedono al codice gestito. In una buona progettazione gli assembly devono indicare in modo esplicito la visibilità COM. È possibile impostare la visibilità COM per l'intero assembly e quindi eseguirne l'override per singoli tipi e membri dei tipi. Se l'attributo non è presente, il contenuto dell'assembly è visibile ai client COM.
Come correggere le violazioni
Per correggere una violazione di questa regola, aggiungere l'attributo all'assembly. Se non si desidera che l'assembly sia visibile ai client COM, applicare l'attributo e impostarne il valore su false.
Esclusione di avvisi
Non escludere un avviso da questa regola. Se si desidera che l'assembly sia visibile, applicare l'attributo e impostare il valore su true.
Esempio
Nell'esempio riportato di seguito viene illustrato un assembly con l'attributo ComVisibleAttribute applicato per impedire che sia visibile ai client 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 {}
Vedere anche
Concetti
Qualificazione di tipi .NET per l'interoperabilità