FeatureSwitchDefinitionAttribute Kelas

Definisi

Menunjukkan bahwa properti baca-saja Boolean statis publik yang ditentukan sesuai dengan sakelar fitur yang ditentukan berdasarkan nama.

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
Warisan
FeatureSwitchDefinitionAttribute
Atribut

Contoh

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

Saat aplikasi dipangkas dengan pengaturan fitur berikut dalam file proyek, Feature.IsSupported diperlakukan sebagai false, dan Feature.Implementation kode dihapus.

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

Keterangan

Penulis ulang dan pengkompilasi IL dapat menggunakan atribut ini untuk menggantikan nilai pengembalian properti yang ditentukan dengan nilai sakelar fitur.

Nilai sakelar fitur hanya dapat ditentukan di tingkat aplikasi dan memengaruhi seluruh aplikasi. Dimungkinkan untuk masuk ke situasi di mana satu pustaka yang merupakan bagian dari aplikasi mengharuskan pengalihan fitur diaktifkan, tetapi tidak memiliki cara untuk mengkomunikasikan ini kepada penulis aplikasi.

Sakelar fitur mempersulit pengujian unit dan berbagi kode karena konfigurasi aplikasi yang berbeda mungkin memiliki nilai sakelar fitur yang berbeda, dan sulit untuk memastikan semua jalur kode berfungsi seperti yang diharapkan.

Oleh karena itu lebih baik untuk menyusun API dengan cara pemangkasan dapat terjadi secara alami tanpa sakelar fitur apa pun. Penggunaan sakelar fitur harus dicadangkan untuk situasi di mana pemangkasan perlu terjadi, tetapi tidak layak untuk mengubah API untuk memungkinkan pemangkasan secara alami.

Konstruktor

Nama Deskripsi
FeatureSwitchDefinitionAttribute(String)

Menginisialisasi kelas FeatureSwitchDefinitionAttribute baru

dengan nama sakelar fitur yang ditentukan.

Properti

Nama Deskripsi
SwitchName

Nama sakelar fitur yang menyediakan nilai untuk properti yang ditentukan.

TypeId

Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini.

(Diperoleh dari Attribute)

Metode

Nama Deskripsi
Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk