Pregunta

Tengo una clase de registro de la que se crea una instancia al iniciar una aplicación de consola y se almacena en una variable estática.

Si quiero que una clase use el registrador, ¿debería pasarlo a la clase en el constructor o hacer referencia a él directamente?

Estoy intentando escribir pruebas unitarias y de cualquier manera debería poder hacerlo.Simplemente significa que tengo que configurar la variable estática antes de llamar al código que la usa.

Salud.

No hay solución correcta

Otros consejos

Suena como lo que estás buscando es algún tipo de COI contenedor . Se podría usar o algo que se le parezca que la Unidad de EntLib.

Para que sus clases sean lo más comprobables posible por unidad, todas las dependencias, incluidos los registradores, deben pasarse siempre que sea posible.Esto es lo que se llama Inyección de Dependencia (DI), y es un patrón muy común y estándar para escribir código unitario comprobable.El registro es casi siempre una preocupación transversal que solo está integrada en los cuerpos de métodos porque en realidad no existen marcos de AOP decentes para extraer adecuadamente esas preocupaciones y aplicarlas de manera declarativa.Tener que lidiar con el registro al escribir/ejecutar pruebas unitarias solo aumenta la complejidad de las pruebas, posiblemente agregando preocupaciones de configuración adicionales, cuando realmente desea mantener sus pruebas lo más simples y específicas posible.

¿Cómo sobre el uso de la Puerta de enlace estática patrón ?

Se puede crear una instancia de ella y almacenar esa instancia como miembro de la misma clase y volver que a través de una propiedad.

por ejemplo. Logger.Default
Esto devolverá la referencia a la instancia que fue creada.

EDIT: Un ejemplo de esto podría ser la clase consola y se método de replanteo. Me refiero a que puede seguir usando Console.WriteLine .... y si desea cambiar la corriente, uso el método de replanteo. Se vuelve a dirigir la salida a un nuevo flujo.

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top