gpt4 book ai didi

c# - 在代码中设置开关

转载 作者:行者123 更新时间:2023-11-30 21:37:07 28 4
gpt4 key购买 nike

我正在尝试在我的控制台应用程序中嵌入以下开关设置,但我不需要 app.config。还有其他方法可以在应用程序中设置此开关吗?

我遇到过 AppContext.SetSwitch 但这仅在 .NET 4.6 中可用,但我的应用程序需要在 XP 机器上运行。还有其他方法吗?

<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

最佳答案

如果您的目标版本低于 .NET 4.6 并且想在没有 app.config 的情况下执行此操作,您可以这样做:

var type = Type.GetType("System.AppContext");
if (type != null) {
var setSwitch = type.GetMethod("SetSwitch", BindingFlags.Public | BindingFlags.Static);
setSwitch.Invoke(null, new object[] { "Switch.System.IO.UseLegacyPathHandling", false });
setSwitch.Invoke(null, new object[] { "Switch.System.IO.BlockLongPaths", false });
}

那样的话,如果您的应用程序当前在 .NET 4.6+ 上运行(AppContext 可用并且这些开关实际上会产生任何影响)- 您可以设置它们,否则什么也不做。

关于c# - 在代码中设置开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528116/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com