2012-09-02 13 views
25

Me parece que una clase Context es una consola de control cuyo objeto puede invocar cualquier función incluida, como Datacontext y DomainContext en el servicio WCF Ria. ¿Entiendo este concepto correctamente? Si es así, ¿en qué circunstancias necesito crear una clase de contexto en mi propia jerarquía de clases?¿Qué es un contexto?

Al lado de DataContext, ¿qué otras clases de contexto conocidas tiene el .NET Framework?

Respuesta

34

Puede pensar en el contexto como un contenedor para "cosas" relacionadas como HttpContext, DbContext, ObjectContext. es decir .: HttpContext contiene información que puede alcanzar para operaciones relacionadas con HTTP.

DbContext contiene los métodos y las propiedades para la comunicación de la base de datos. Del mismo modo ObjectContext.

Yo diría que es un marcador de posición o contenedor de cosas relacionadas para algo.

15

Para mí, un objeto de contexto define un conjunto de valores y/o funciones que están vinculados a la ruta de ejecución actual. En otras palabras, al igual que hablar sobre un tema técnico en el contexto de una entrevista de trabajo es diferente a hablar sobre el mismo tema en una cena nerd, el contexto cambia en función de los factores que afectan el entorno de ejecución del código de consumo. Eso parece abstracto, ¡pero no puedo pensar en una mejor manera de describirlo en este momento!

Otro contexto famoso en .NET es el objeto HttpContext. Qué valores cambiarán en función de qué operación Http se esté manejando. Por ejemplo, la url cambiará en HttpContext.Current.Request.Uri. Espero que lo ponga en contexto para usted :)

+0

por lo que un contexto es más que una clase de "ayuda" ... – Jess

4

Un contexto es comúnmente un mecanismo de almacenamiento para un grupo de acciones. HttpContext, por example

contenga toda la información específica de HTTP sobre una petición HTTP individual.

Para su ejemplo de WCF, el "contexto" es el servicio. Los diferentes servicios tienen diferentes contextos. Los contextos pueden ser tan granulares como desee. Algunos son amplios, como el DomainContext, y algunos son granulares, como HttpContext.

Los contextos están en todas partes, conviértelos cuando necesite acceder o establecer datos o funciones similares a las cosas que se pueden desacoplar.

Todos los contextos son así, solo encapsulan la lógica para conjuntos de acciones particulares.

Here es otra publicación que describe el patrón de diseño de contexto.

+2

me gustó su explicación hasta su analogía. – DarthVader

+2

Bastante justo, de todos modos no me vendieron. Gracias por el comentario – devshorts

Cuestiones relacionadas