Condividi tramite


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à

Altre risorse

Interoperabilità con codice non gestito