Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Egenskap | Värde |
|---|---|
| Regel-ID | CA1017 |
| Title | Markera sammansättningar med ComVisibleAttribute |
| Kategori | Design |
| Korrigeringen är antingen invasiv eller icke-invasiv | Oumbrytbar |
| Aktiverad som standard i .NET 10 | Nej |
| Tillämpliga språk | C# och Visual Basic |
Orsak
En samling har inte attributet System.Runtime.InteropServices.ComVisibleAttribute tillämpat på sig.
Regelbeskrivning
Attributet ComVisibleAttribute avgör hur COM-klienter får åtkomst till hanterad kod. God design föreskriver 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 {}