.NET 9.0'da yeni [28]: İşlevsellik bayrağı

Saberie

Active member
Yeni ek açıklama ile [FeatureSwitchDefinition] Ad ile seçilen proje dosyasındaki bir proje ayarına başvurabilir ve şartlı bir derleme sağlayabilirsiniz. Bu, Cut/AOT kullanırken, devre dışı bırakılan özellikler için programın programının çevrilmediği anlamına gelir.






Dotnet Doctor-Holger Schwichtenberg




Holger Schwichtenberg, 53 ünlü uzmanla tavsiye ve eğitim yoluyla ve yazılımın geliştirilmesinde çok sayıda orta ve büyük şirketi destekleyen uzmanlar ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası uzman konferansındaki görünümleri, 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makalesi sayesinde Holger Schwichtenberg, Almanya'daki .NET ve Web teknikleri için en iyi uzmanlardan biridir.








18 Kasım 2025'te BetterCode Online Konferansı () 10.0



(Resim: Coffeemill/123rf.com)


Program kesindir: 18 Kasım 2025 tarihinde BetterCode Online Konferansı () .NET 10.0'da IX ve DPUNKT.VERLAG tarafından organize edilen IT-visions.de.De bu makalenin yazarı Dr. Holger Schwichtenberg ve diğer uzmanları en önemli yenilikler. İlk kitap kitapları çevrimiçi mağazada mevcuttur.







Belirli bir örnekte, şu şekilde çalışır: işlev anahtarı ise "ColorPrinting.IsSupported" AÇIK false Duruşlar, yöntem Print() Kesim sırasında kaldırıldı, çünkü mülk nedeniyle sadece belirli bir noktada sevk ediliyor IsSupported sınıfta ColorPrinting.



using System.Diagnostics.CodeAnalysis;
using ITVisions;

namespace NET9_Console.FCL90
{
public class ColorPrinting
{
[FeatureSwitchDefinition("ColorPrinting.IsSupported")] // liest Wert aus RuntimeHostConfigurationOption
internal static bool IsSupported => AppContext.TryGetSwitch("ColorPrinting.IsSupported", out bool isEnabled) ? isEnabled : true;

/// <summary>&#13;
/// Code, der ggf. bei Trimming/AOT entfernt wird, wenn ColorPrinting.IsSupported=false&#13;
/// </summary>&#13;
internal static void Print(string s) &#13;
{&#13;
CUI.Print(s, ConsoleColor.Yellow);&#13;
}&#13;
}&#13;
&#13;
/// <summary>&#13;
/// [FeatureSwitchDefinition] für Entfernen von Code bei Trimming/AOT&#13;
/// </summary>&#13;
class FCL9_FeatureSwitches&#13;
{&#13;
public void Run()&#13;
{&#13;
CUI.Demo(nameof(FCL9_FeatureSwitches));&#13;
&#13;
Console.WriteLine("ColorPrinting.IsSupported=" + ColorPrinting.IsSupported);&#13;
&#13;
// Bedingung auf Feature Switch&#13;
if (ColorPrinting.IsSupported)&#13;
{&#13;
// Dieser Aufruf und damit die ganze Methode Print() wird beim Trimming entfernt, wenn ColorPrinting.IsSupported=false&#13;
ColorPrinting.Print("Ausgabe in Farbe");&#13;
}&#13;
else&#13;
{&#13;
CUI.Print("Keine Farbe");&#13;
}&#13;
}&#13;
}&#13;
}&#13;



Aşağıdaki gibi, yukarıdaki işlev proje dosyasındaki bir öğe tarafından etkinleştirilir. Şimdi yöntem Print() sınıfta ColorPrinting Keserken kaldırılmadı:



<!--Features Switches-->&#13;
<ItemGroup>&#13;
<!-- ColorPrinting wird in diesem Build benötigt -->&#13;
<RuntimeHostConfigurationOption Include="ColorPrinting.IsSupported" Value="true" Trim="true" />&#13;
</ItemGroup>&#13;





Renkli bir sürümle ekran görüntüsü



İşlev etkinleştirildiğinde, metin renkli görünür.




Aşağıdaki gibi, yukarıdaki işlev proje dosyasındaki bir öğe tarafından devre dışı bırakılır. Şimdi kesim yöntem Print() sınıftan ColorPrinting kaldırmak:





<!--Features Switches-->&#13;
<ItemGroup>&#13;
<!-- ColorPrinting wird in diesem Build nicht benötigt und beim Trimming entfernt-->&#13;
<RuntimeHostConfigurationOption Include="ColorPrinting.IsSupported" Value="false" Trim="true" />&#13;
</ItemGroup>&#13;





Renkli Baskı ile Ekran Görüntüsü



İşlev devre dışı bırakılırsa, metin renkli görünmez.




(RME)




Ne yazık ki, bu bağlantı artık geçerli değil.

Boşa harcanan eşyalara bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.


Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!
 
Üst