CA1413: Nicht öffentliche Felder in für COM sichtbaren Werttypen vermeiden.
Element | Wert |
---|---|
RuleId | CA1413 |
Category | Microsoft.Interoperability |
Unterbrechende Änderung | Breaking |
Ursache
Ein Werttyp, der speziell als für COM (Component Object Model) sichtbar gekennzeichnet ist, enthält ein nicht öffentliches Instanzenfeld.
Regelbeschreibung
Nicht öffentliche Instanzenfelder von COM-sichtbaren Werttypen sind für COM-Clients sichtbar. Überprüfen Sie den Inhalt des Felds auf Informationen, die nicht verfügbar gemacht werden sollen oder unbeabsichtigte Auswirkungen auf Entwurf oder Sicherheit haben.
Standardmäßig sind alle öffentlichen Werttypen für COM sichtbar. Zur Verringerung falsch positiver Ergebnisse erfordert diese Regel jedoch, dass die COM-Sichtbarkeit des Typs ausdrücklich angegeben wird. Für die enthaltende Assembly muss System.Runtime.InteropServices.ComVisibleAttribute auf false
festgelegt werden, und für den Typ muss ComVisibleAttribute als true
markiert sein.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben und das Feld weiterhin auszublenden, ändern Sie den Werttyp in einen Verweistyp, oder entfernen Sie das Attribut ComVisibleAttribute aus dem Typ.
Wann sollten Warnungen unterdrückt werden?
Eine durch diese Regel ausgelöste Warnung kann gefahrlos unterdrückt werden, wenn es akzeptabel ist, das Feld öffentlich verfügbar zu machen.
Beispiel
Das folgende Beispiel zeigt einen Typ, der gegen die Regel verstößt.
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
namespace InteroperabilityLibrary
{
[ComVisible(true)]
public struct SomeStruct
{
internal int SomeValue;
}
}
Ähnliche Regeln
CA1407: Statische Member in für COM sichtbaren Typen vermeiden.
CA1017: Assemblys mit ComVisibleAttribute markieren.
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für