Context是什么意思?

时间:2011-02-06 19:22:47

标签: .net

这个词对我来说永远不会有意义。我不明白uuualy为什么数据库访问对象以这个命名约定命名,而且我已经多次看到这个词在其他代码中用于与数据库对象无关。

有人可以在编程中向非英语的人解释这个词的含义吗?可以举一些关于编程领域的一般用法的例子吗?

4 个答案:

答案 0 :(得分:15)

当某些东西封装某种状态时,某些东西通常被称为计算机编程中的“上下文”。

在Linq 2 sql或EF的示例中,您有一个数据上下文或对象上下文..这些封装了数据模型的状态,包括连接和版本控制。

在HttpContext的情况下,它封装了Http连接的状态(通常被认为是无状态的,但是HttpContext尝试给它提供状态)。

在英语中,如果我们提到上下文,我们会参考有关某些内容的信息,这些信息可以让您了解存在某些内容的整个情况。例如,我们可以说声明是“脱离背景”。这意味着声明本身并不一定能揭示所有信息。

脱离背景:

  人们很好吃。

在上下文中:

  

我们永远不应该说或认为人们好吃。

没有“上下文”,该陈述具有不同的含义。编程已将该术语用于类似地引用围绕某些事物的数据,从而赋予其更多意义。

答案 1 :(得分:5)

在.NET AFAIK中,我们在Web中有Httpcontext,在Entity Framework中有ObjectContext。我不知道.NET框架中任何其他上下文的使用,但可能会有更多的用法。所以,这是我所知道的两个简单解释。

  • <强>的HttpContext:
    封装有关单个HTTP请求的所有特定于HTTP的信息。此类的属性包括Request对象,Response对象,Session对象和AllErrors属性,该属性保留当前请求期间发生的Exception对象数组。它只是一个包装类。

  • ObjectContext:引自:http://cgeers.wordpress.com/2009/02/21/entity-framework-objectcontext/#objectcontext

      

    查询返回的每个对象(Linq To Entities,Entities SQL ...)都自动附加到对象上下文。此上下文跟踪应用于这些对象的更改,以便稍后可以确定如何将这些更改持久保存到基础数据存储   此对象上下文由适当命名的ObjectContext类表示。 ObjectContext封装了一些东西,即:

         
        
    • 与基础数据存储(数据库)的连接
    •   
    • 描述实体数据模型(EDM)的元数据
    •   
    • 用于跟踪对象更改的ObjectStateManager
    •   

因此,当我们想要管理一些逻辑上相对的对象时,它似乎基本上被使用了。我们可以放在一个逻辑上下文中的对象。 (例如,EF中的实体或HttpContext中的Request / Response / Session / etc)

答案 2 :(得分:0)

我知道这已经过时了,但是最近在语言中出现了更多的语言。 According to the MSDN上下文是:

  

定义驻留对象的环境   在其内部并且可以实施政策。

由此,我解释说它是一个必须遵守一组全局的规则的容器,在这些规则中将存在Context。 DbContext,HttpContext和ViewContext等等都很容易打包到该定义中。

这也意味着您可以在现有上下文之上定义,扩展您自己的上下文。一个例子是获取HttpContext并派生一个RestfulContext,它设置HttpContext来处理Http上的Restful策略。同样,您可以派生一个HateOasContext,它将进一步细化应用于Context中对象的策略。

答案 3 :(得分:0)

上下文存储了关键信息,以了解给定场景...