C # extendiendo SoapExtension -

Fondo Estoy tratando de escribir una clase SoapExtension simple para registrar mensajes Soap entrantes / salientes desde un servicio web asmx. Siguiendoeste artículo sobre msdn, He podido hacer que las cosas funcionen. Sin embargo, me gustaría entender por qué / cómo funciona en lugar de simplemente copiar y pegar código.

La pregunta Lo que estoy tratando de comprender específicamente es el manejo de las secuencias de E / S en el ejemplo. Todos los demás artículos que he leído en la web manejan las transmisiones de manera idéntica ... primero obteniendo una referencia a la transmisión original, creando una transmisión "en funcionamiento" en la memoria y luego intercambiando el contenido según sea necesario.

La primera pregunta es, ¿qué se entiende por "encadenamiento de flujo" en este contexto? Comprendo las transmisiones es que escribir en cualquier transmisión automáticamente escribirá en las transmisiones 'internas' en una tubería. Si ese es el caso, ¿por qué es necesario copiar manualmente el contenido de una secuencia a otra?

a segunda pregunta es, en el método de copia de ejemplos, están creando un StreamReader y StreamWriter cada vez, sin desecharlos: ¿no está esto ejerciendo una presión adicional sobre el GC? No parece algo que desearía en un servicio web de alto tráfico ... Traté de incluir ambos en el uso de declaraciones, pero eliminar el lector / escritor también cerró la transmisión que condujo a errores más graves. .NET 4 tiene nuevos métodos Stream.CopyTo (Stream), pero ¿cuál sería un mejor enfoque para .NET 3.5?

Respuestas a la pregunta(2)

Su respuesta a la pregunta