2012-09-02 87 views
25

在我看來,Context類是一個控制檯,它的對象可以調用任何包含的功能,例如WCF Ria服務中的Datacontext和DomainContext。我理解這個概念嗎?如果是這樣,我需要在自己的類層次結構中創建一個上下文類?什麼是上下文?

除了DataContext之外,.net框架還有哪些其他衆所周知的Context類?

回答

34

您可以將上下文看作是諸如HttpContext,DbContext,ObjectContext等相關「事物」的包裝。即:HttpContext包含您可以爲HTTP相關操作獲取的任何信息。

DbContext包含數據庫通信的方法和屬性。同樣,ObjectContext。

我會說這是一個佔位符或容器的相關事物的東西。

15

對我來說,一個上下文對象定義了一組綁定到當前執行路徑的值和/或函數。換句話說,就像面談上下文中的技術話題一樣,在討論晚餐時與講同一主題不同,上下文根據影響消費代碼的運行時環境的因素而改變。這看起來很抽象,但我現在想不出一個更好的方式來描述它!

.NET中另一個着名的上下文是HttpContext對象。哪些值將根據正在處理的Http操作而改變。例如,網址將在HttpContext.Current.Request.Uri中更改。希望將它放在上下文中:)

+0

所以上下文不僅僅是一個「幫手」類... – Jess

4

上下文通常是一組操作的存儲機制。 HttpContext,對於example

封裝有關單個HTTP請求的所有HTTP特定信息。

對於您的WCF示例,「上下文」是服務。不同的服務有不同的上下文。上下文可以像你想要的那樣精細。有些很寬泛,如DomainContext,有些是細化的,如HttpContext

上下文無處不在,當您需要訪問或設置類似頭腦的數據或功能時,可以將它們分配給可以分離的事物。

所有上下文都是這樣的,它們只是封裝了特定操作集的邏輯。

Here是另一篇描述上下文設計模式的文章。

+2

我喜歡你的解釋,直到你的類比。 – DarthVader

+2

公平不夠,反正我沒有賣。感謝您的評論 – devshorts