FeatureSwitchDefinitionAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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) |