FeatureSwitchDefinitionAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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) |