FeatureSwitchDefinitionAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Označuje, že zadaná veřejná statická logická vlastnost jen pro čtení odpovídá přepínači funkce určenému názvem.
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
- Dědičnost
- Atributy
Příklady
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() => ...;
}
Když je aplikace oříznuta s následujícím nastavením funkce v souboru projektu, Feature.IsSupported je považována za falsea Feature.Implementation kód se odebere.
<ItemGroup>
<RuntimeHostConfigurationOption Include="Feature.IsSupported" Value="false" Trim="true" />
</ItemGroup>
Poznámky
Rewriters a kompilátory IL mohou použít tento atribut k nahrazení návratové hodnoty zadané vlastnosti hodnotou přepínače funkce.
Hodnotu přepínače funkcí lze zadat pouze na úrovni aplikace a ovlivňuje celou aplikaci. Je možné se dostat do situací, kdy jedna knihovna, která je součástí aplikace, vyžaduje zapnutí přepínače funkcí, ale nemá žádný způsob, jak to sdělit autorovi aplikace.
Přepínače funkcí komplikují testování jednotek a sdílení kódu, protože různé konfigurace aplikací můžou mít různé hodnoty přepínače funkcí a je obtížné zajistit, aby všechny cesty kódu fungovaly podle očekávání.
Proto je vhodnější strukturovat rozhraní API takovým způsobem, že oříznutí může probíhat přirozeně bez jakýchkoli přepínačů funkcí. Použití přepínačů funkcí by mělo být vyhrazeno pro situace, kdy je potřeba provést oříznutí, ale není možné změnit rozhraní API tak, aby umožňovala oříznutí přirozeně.
Konstruktory
| Name | Description |
|---|---|
| FeatureSwitchDefinitionAttribute(String) |
Inicializuje novou instanci FeatureSwitchDefinitionAttribute třídy. se zadaným názvem přepínače funkcí. |
Vlastnosti
| Name | Description |
|---|---|
| SwitchName |
Název přepínače funkce, který poskytuje hodnotu pro zadanou vlastnost. |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |