Condividi tramite


CA1409: I tipi visibili a COM devono essere creabili

TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

Category

Microsoft.Interoperability

Breaking Change

Non sostanziale

Causa

Un tipo di riferimento contrassegnato specificatamente come visibile a Component Object Model (COM) contiene un costruttore con parametri pubblico, ma non contiene un costruttore predefinito pubblico senza parametri.

Descrizione della regola

Un tipo senza un costruttore predefinito pubblico non può essere creato da client COM. Il tipo è comunque accessibile ai client COM se è disponibile un altro mezzo per creare il tipo e passarlo al client (ad esempio tramite il valore restituito di una chiamata a un metodo).

La regola ignora i tipi derivati da System.Delegate.

Per impostazione predefinita, i seguenti elementi sono visibili a COM: assembly, tipi pubblici, membri di istanza pubblici in tipi pubblici e tutti i membri di tipi di valore pubblici.

Come correggere le violazioni

Per correggere una violazione di questa regola, aggiungere un costruttore predefinito pubblico o rimuovere l'oggetto System.Runtime.InteropServices.ComVisibleAttribute dal tipo.

Esclusione di avvisi

L'esclusione di un avviso da questa regola è sicura se sono disponibili altri modi per creare e passare l'oggetto al client COM.

Regole correlate

CA1017: Contrassegnare gli assembly con ComVisibleAttribute

Vedere anche

Concetti

Qualificazione di tipi .NET per l'interoperabilità

Altre risorse

Interoperabilità con codice non gestito