FeatureSwitchDefinitionAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Geeft aan dat de opgegeven openbare statische Booleaanse eigenschap alleen-lezen overeenkomt met de functieswitch die is opgegeven met de naam.
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
- Overname
- Kenmerken
Voorbeelden
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() => ...;
}
Wanneer de app wordt ingekort met de volgende functie-instellingen in het projectbestand, Feature.IsSupported wordt deze behandeld als falseen Feature.Implementation wordt de code verwijderd.
<ItemGroup>
<RuntimeHostConfigurationOption Include="Feature.IsSupported" Value="false" Trim="true" />
</ItemGroup>
Opmerkingen
IL-rewriters en compilers kunnen dit kenmerk gebruiken om de retourwaarde van de opgegeven eigenschap te vervangen door de waarde van de functieswitch.
De waarde van de functieswitch kan alleen worden opgegeven op toepassingsniveau en is van invloed op de hele toepassing. Het is mogelijk om in situaties te komen waarin een bibliotheek die deel uitmaakt van de toepassing, de functieswitch moet worden ingeschakeld, maar geen manier heeft om dit te communiceren met de auteur van de toepassing.
Functieswitches maken het testen van eenheden en het delen van code ingewikkeld omdat verschillende toepassingsconfiguraties mogelijk verschillende waarden van de functieswitch hebben en het is moeilijk om ervoor te zorgen dat alle codepaden werken zoals verwacht.
Het verdient daarom de voorkeur om API's zodanig te structureren dat bijsnijden op natuurlijke wijze kan plaatsvinden zonder functieswitches. Het gebruik van functieswitches moet worden gereserveerd voor situaties waarin bijsnijden moet plaatsvinden, maar het is niet haalbaar om de API's te wijzigen zodat ze op natuurlijke wijze kunnen worden ingekort.
Constructors
| Name | Description |
|---|---|
| FeatureSwitchDefinitionAttribute(String) |
Initialiseert een nieuw exemplaar van de FeatureSwitchDefinitionAttribute klasse met de naam van de opgegeven functieswitch. |
Eigenschappen
| Name | Description |
|---|---|
| SwitchName |
De naam van de functieswitch die de waarde voor de opgegeven eigenschap levert. |
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |