CA1017: Markera sammansättningar med ComVisibleAttribute

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

Se även