我开始在任何地方看到上下文。在ASP.NET MVC中,有ControllerContexts,requestContexts,httpcontexts,formContexts。在实体框架中,您具有对象限制和dbContexts。 ninject具有ninject.activation.icontext。

什么是上下文?

有帮助吗?

解决方案

好吧,这是一种依赖性注入的事情,可以让人们说“这是您将在这里操作的环境”。通常,它们毫不奇怪地提供了“上下文”。即,一些状态。也许是URL,也许是一些HTTP标头。

您看到了很多,因为ASP.NET专注于测试,因此允许这些项目“交换”,以便您可以提供您的 自己的 上下文实现(即定义您自己的状态),以便您可以适当地运行测试。

如果你想知道什么 状态 是的,环境仅仅是“给出”的各种数据。即今天是 在办公室里感冒. 。这是 状态. 。但是也许我想在测试时进行测试 在办公室里热, ,所以我能够子类 OfficeContext 并返回适当的方法/等的适当状态。

其他提示

IMO,上下文表示一些(可能是可变的)关于 某物. 。通常情况下,上下文将是横切层,并且经常在跨层携带域中性数据。

语境 是您当前正在做的事情范围之外的信息,但可能具有必不可少的含义。

想象一下,如果有人问您英语单词“ fly”的含义。有多种定义:嗡嗡作响的很少的检查或在空气中滑行的持续行动。为了给出正确的答案,您需要 语境 哪个告诉您他们正在寻找的定义 - 他们是在阅读有关Diptera还是Wright兄弟的书?

关于计算,说您正在实施HTTP处理程序。它可能能够在不知道其他任何知识的情况下产生响应(您好,世界!),但更有可能需要 语境 HTTP请求信息 - 请求参数是什么,可接受的编码类型等。因此,它可以对用户代理产生有意义的响应。

我认为它们像您的环境变量和telnet/ssh会话中的个人资料设置一样。他们将不同的设置捆绑在一起,以允许工具根据其遇到的上下文(即环境)的不同性能。

IMO,这只是另一个论点。在我(有限的)经验中,我已经看到这是通话课。你必须知道 什么 您正在做自己正在做的事情 出色地. 。上下文是您正在做的事情,正在发生的事情/运行。

以上答案总体上都很好。我唯一要补充的是,它最常见的用法是作为系统下层的“胶水”。通常,所讨论的系统是某种“容器”系统,其中您的代码是在较大的代码库中执行的,该代码库隐藏了您的大量执行详细信息。上下文是该较大系统的抽象接口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top