FeatureSwitchDefinitionAttribute Osztály

Definíció

Azt jelzi, hogy a megadott nyilvános statikus logikai írásvédett tulajdonság megfelel a név alapján megadott funkciókapcsolónak.

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
Öröklődés
FeatureSwitchDefinitionAttribute
Attribútumok

Példák

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() => ...;
}

Ha az alkalmazás a projektfájlban a következő funkcióbeállításokkal van levágva, Feature.IsSupported a rendszer a következőként falsekezeli, és Feature.Implementation a kód el lesz távolítva.

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

Megjegyzések

Az IL-írók és fordítók ezzel az attribútummal helyettesíthetik a megadott tulajdonság visszatérési értékét a funkciókapcsoló értékével.

A funkciókapcsoló értéke csak az alkalmazás szintjén adható meg, és az egész alkalmazást érinti. Olyan helyzetekbe is kerülhet, amikor az alkalmazás részét képező egyik kódtárhoz be kell kapcsolni a funkciókapcsolót, de ezt nem lehet kommunikálni az alkalmazás szerzőjével.

A funkciókapcsolók bonyolítják az egységtesztelést és a kódmegosztást, mivel a különböző alkalmazáskonfigurációk eltérő értékekkel rendelkezhetnek a funkciókapcsolóban, és nehéz biztosítani, hogy az összes kódútvonal a várt módon működjön.

Ezért célszerű az API-kat úgy strukturálni, hogy a vágás természetes módon, funkciókapcsolók nélkül történjen. A funkciókapcsolók használatát fenn kell hagyni olyan helyzetekre, amikor vágásra van szükség, de az API-k módosítása nem lehetséges a természetes vágás engedélyezéséhez.

Konstruktorok

Name Description
FeatureSwitchDefinitionAttribute(String)

Az osztály új példányának inicializálása FeatureSwitchDefinitionAttribute

a megadott funkciókapcsoló nevével.

Tulajdonságok

Name Description
SwitchName

Annak a funkciókapcsolónak a neve, amely a megadott tulajdonság értékét biztosítja.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: