我们什么时候需要使用System.AppContext?

vik*_*ata 9 c#

似乎AppContext只有一个叫做的属性BaseDirectory.但是Environment类似乎有更多的属性和方法.

所以AppContext被替换Environment类呢?

And*_*ndy 9

AppContext.NET 4.6已经引入,因此不会被替换.

MSDN说:

AppContext是一种新的兼容性功能,使库编写者能够为其用户提供统一的退出机制来实现新功能.它在组件之间建立了一个loosley耦合的合同,以便传达退出请求.当对现有功能进行更改时,此功能通常很重要.相反,已经隐含了新功能的选择.

使用AppContext,库定义和公开兼容性开关,而依赖它们的代码可以设置这些开关,以影响库行为.默认情况下,库提供新功能,并且只有在设置了开关时才更改它(例如,提供旧行为).

总之,它提供了处理同一个dll的多个版本的功能.

代码示例位于提供的链接中.