CoreAppContextSwitches
using System.Runtime.CompilerServices;
namespace System.Private.Windows
{
[NullableContext(1)]
[Nullable(0)]
internal static class CoreAppContextSwitches
{
internal const string ClipboardDragDropEnableUnsafeBinaryFormatterSerializationSwitchName = "Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization";
internal const string ClipboardDragDropEnableNrbfSerializationSwitchName = "Windows.ClipboardDragDrop.EnableNrbfSerialization";
private static int s_clipboardDragDropEnableUnsafeBinaryFormatterSerialization;
private static int s_clipboardDragDropEnableNrbfSerialization;
public static bool ClipboardDragDropEnableUnsafeBinaryFormatterSerialization {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get {
return GetCachedSwitchValue("Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization", ref s_clipboardDragDropEnableUnsafeBinaryFormatterSerialization);
}
}
public static bool ClipboardDragDropEnableNrbfSerialization {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get {
return GetCachedSwitchValue("Windows.ClipboardDragDrop.EnableNrbfSerialization", ref s_clipboardDragDropEnableNrbfSerialization);
}
}
private static bool GetCachedSwitchValue(string switchName, ref int cachedSwitchValue)
{
if (cachedSwitchValue < 0)
return false;
if (cachedSwitchValue > 0)
return true;
return GetSwitchValue(switchName, ref cachedSwitchValue);
}
private static bool GetSwitchValue(string switchName, ref int cachedSwitchValue)
{
bool isEnabled;
bool flag = AppContext.TryGetSwitch(switchName, out isEnabled);
if (!flag)
isEnabled = GetSwitchDefaultValue(switchName);
AppContext.TryGetSwitch("TestSwitch.LocalAppContext.DisableCaching", out bool isEnabled2);
if (!isEnabled2)
cachedSwitchValue = (isEnabled ? 1 : (-1));
else if (!flag) {
AppContext.SetSwitch(switchName, isEnabled);
}
return isEnabled;
}
private static bool GetSwitchDefaultValue(string switchName)
{
if (switchName == "Windows.ClipboardDragDrop.EnableNrbfSerialization")
return true;
return false;
}
}
}