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 9 | 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 {}