FeatureSwitchDefinitionAttribute Klasse

Definition

Gibt an, dass die angegebene öffentliche statische boolesche schreibgeschützte Eigenschaft dem Durchnamen angegebenen Featureswitch entspricht.

public ref class FeatureSwitchDefinitionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=false)]
public sealed class FeatureSwitchDefinitionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=false)>]
type FeatureSwitchDefinitionAttribute = class
    inherit Attribute
Public NotInheritable Class FeatureSwitchDefinitionAttribute
Inherits Attribute
Vererbung
FeatureSwitchDefinitionAttribute
Attribute

Beispiele

if (Feature.IsSupported)
    Feature.Implementation();

public class Feature
{
    [FeatureSwitchDefinition("Feature.IsSupported")]
    internal static bool IsSupported => AppContext.TryGetSwitch("Feature.IsSupported", out bool isEnabled) ? isEnabled : true;

    internal static Implementation() => ...;
}

Wenn die App mit den folgenden Featureeinstellungen in der Projektdatei gekürzt wird, Feature.IsSupported wird behandelt als false, und Feature.Implementation Code wird entfernt.

<ItemGroup>
  <RuntimeHostConfigurationOption Include="Feature.IsSupported" Value="false" Trim="true" />
</ItemGroup>

Hinweise

Il rewriters and compilers can use this attribute to substitute the return value of the specified property with the value of the feature switch.

Der Wert des Featureswitches kann nur auf Anwendungsebene angegeben werden und wirkt sich auf die gesamte Anwendung aus. Es ist möglich, in Situationen zu gelangen, in denen eine Bibliothek, die Teil der Anwendung ist, erfordert, dass der Featurewechsel aktiviert ist, dies aber nicht mit dem Anwendungsautor kommunizieren kann.

Featureswitches erschweren Komponententests und Codefreigaben, da unterschiedliche Anwendungskonfigurationen möglicherweise unterschiedliche Werte des Featureswitches aufweisen, und es ist schwierig, sicherzustellen, dass alle Codepfade wie erwartet funktionieren.

Daher empfiehlt es sich, APIs so zu strukturieren, dass das Kürzen natürlich ohne Funktionsschalter erfolgen kann. Die Verwendung von Featureoptionen sollte für Situationen reserviert werden, in denen Kürzungen stattfinden müssen, aber es ist nicht möglich, die APIs so zu ändern, dass das Kürzen natürlich erlaubt wird.

Konstruktoren

Name Beschreibung
FeatureSwitchDefinitionAttribute(String)

Initialisiert eine neue Instanz der FeatureSwitchDefinitionAttribute Klasse.

mit dem angegebenen Featureswitchnamen.

Eigenschaften

Name Beschreibung
SwitchName

Der Name des Featureswitches, der den Wert für die angegebene Eigenschaft bereitstellt.

TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diesen instance zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: