FeatureSwitchDefinitionAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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) |