Share via


CA1017: Markera sammansättningar med ComVisibleAttribute

Property Värde
Regel-ID CA1017
Title Markera sammansättningar med ComVisibleAttribute
Kategori Designa
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Nej

Orsak

En sammansättning har inte det attribut som System.Runtime.InteropServices.ComVisibleAttribute tillämpas på den.

Regelbeskrivning

Attributet ComVisibleAttribute avgör hur COM-klienter får åtkomst till hanterad kod. Bra design avgör att sammansättningar uttryckligen anger COM-synlighet. COM-synlighet kan anges för en hel sammansättning och sedan åsidosättas för enskilda typer och typmedlemmar. Om attributet inte finns är innehållet i sammansättningen synligt för COM-klienter.

Så här åtgärdar du överträdelser

Om du vill åtgärda ett brott mot den här regeln lägger du till attributet i sammansättningen. Om du inte vill att sammansättningen ska vara synlig för COM-klienter använder du attributet och anger dess värde till false.

När du ska ignorera varningar

Ignorera inte en varning från den här regeln. Om du vill att sammansättningen ska vara synlig använder du attributet och anger dess värde till true.

Exempel

I följande exempel visas en sammansättning som har attributet ComVisibleAttribute tillämpat för att förhindra att det visas för COM-klienter.

<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}

Se även