WCF ChannelFactory caching

Acabo de leer estogran articulo en el almacenamiento en caché de WCF ChannelFactory por Wenlong Dong.

Mi pregunta es simplemente: ¿cómo puede usted probar realmente que ChannelFactory se está almacenando en caché entre las llamadas? He seguido las reglas relativas a los constructores de ClientBase. Estamos utilizando el siguiente constructor sobrecargado en nuestro objeto que hereda de ClientBase:

ClientBase (cadena endpointConfigurationName, EndpointAddress remoteAddress);

En el artículo mencionado anteriormente se afirma que:

Para estos constructores, todos los argumentos (incluidos los predeterminados) están en la siguiente lista:

· InstanceContext callbackInstance

· Cadena endpointConfigurationName

· EndpointAddress remoteAddress

Mientras estos tres argumentos sean los mismos cuando se construye ClientBase, podemos asumir con seguridad que se puede usar el mismo ChannelFactory. Afortunadamente, los tipos String y EndpointAddress son inmutables, es decir, podemos hacer una comparación simple para determinar si dos argumentos son iguales. Para InstanceContext, podemos usar la comparación de referencia de objetos. El tipo EndpointTrait se utiliza así como la clave de la memoria caché de MRU.

Para probar la teoría del caché de ChannelFactory, estamos comprobando el código hash en el constructor ClientBase, por ejemplo. var testHash = RuntimeHelpers.GetHashCode (base.ChannelFactory);

El valor de hash es diferente entre las llamadas, lo que nos hace pensar que ChannelFactory no está almacenado en caché.

¿Alguna idea?

Saludos

Myles

Respuestas a la pregunta(2)

Su respuesta a la pregunta