在我看来,Context类是一个控制台,其对象可以调用任何包含的函数,例如WCF Ria服务中的Datacontext和DomainContext。我能正确理解这个概念吗?如果是这样,我在什么情况下需要在我自己的类层次结构中创建一个上下文类?
除了DataContext之外,.net框架还有哪些其他众所周知的Context类?
答案 0 :(得分:45)
您可以将上下文视为相关“事物”的包装,例如HttpContext,DbContext,ObjectContext。即:HttpContext包含您可以访问HTTP相关操作的任何信息。
DbContext包含数据库通信的方法和属性。同样是ObjectContext。
我会说它是一个占位符或相关东西的容器。
答案 1 :(得分:18)
对我来说,上下文对象定义了一组绑定到当前执行路径的值和/或函数。换句话说,就像在工作面试的上下文中谈论技术主题不同于在书呆子晚宴上谈论同一主题时,上下文会根据影响运行时环境的因素而变化。消费代码。这看起来很抽象,但我想不出更好的方式来描述它!
.NET中另一个着名的上下文是HttpContext
对象。哪些值将根据正在处理的Http操作而改变。例如,网址将在HttpContext.Current.Request.Uri
中更改。希望能为您提供上下文:)
答案 2 :(得分:4)
上下文通常是一组操作的存储机制。 HttpContext
,example
封装有关单个HTTP请求的所有特定于HTTP的信息。
对于您的WCF示例,“context”是服务。不同的服务有不同的背景。上下文可以根据需要进行细化。有些是广泛的,如DomainContext
,有些是精细的,如HttpContext
。
上下文无处不在,当您需要访问或将类似数据或功能设置为可以解耦的内容时,可以使用它们。
所有上下文都是这样的,它们只是封装了特定操作集的逻辑。
Here是另一篇描述上下文设计模式的文章。
答案 3 :(得分:0)
在某些OOP设计模式中使用了Context类, 例如: -状态模式 -策略模式