何时需要使用System.AppContext?

10

看起来 AppContext 只有一个名为 BaseDirectory 的属性。但是 Environment 类似乎有更多的属性和方法。

所以现在 AppContextEnvironment 类取代了吗?


一个好问题,如果我通过像Unity这样的IoC解析服务,那么这个上下文是否仍然可以在库之间访问,如果可以,那么它是如何处理的。 - Saravanan
此外,当服务在负载均衡器后面提供时,如何使用此应用上下文? - Saravanan
1个回答

13

AppContext是在.NET 4.6中引入的,因此不会被替换。

MSDN表示:

AppContext是一项新的兼容性功能,它使库编写者能够为其用户提供统一的新功能退出机制。它通过建立松耦合契约来实现组件之间的通信,以便传达退出请求。当对现有功能进行更改时,这种能力通常很重要。相反,新功能已经存在隐式的选择加入。

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

简而言之,它提供了处理同一dll的多个版本的功能。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接