Tengo tres proyectos de C# en mi solución. Una es una aplicación de consola que simplemente llama a un proyecto de biblioteca de clase. El proyecto de biblioteca de clase hace todo el procesamiento para la aplicación. Luego hay un proyecto de WinForm que muestra un formulario y luego cuando se presiona un botón, invoca la misma lógica en el proyecto de la biblioteca de la clase. Como resultado, hay dos formas de ejecutar la lógica, a través de la consola o a través de una interfaz de usuario de Windows (WinForm).¿Cómo diseño lógica de vista en proyectos de C#
Mi problema es que, en parte de la lógica de la biblioteca de clases, si se está utilizando la aplicación UI, quiero que aparezca un formulario personalizado de WinForm para hacerle una pregunta al usuario.
En la aplicación de consola, quiero el mismo lugar en la lógica para simplemente escribir en la consola. En mi comprensión de la arquitectura, no desea que el proyecto de la biblioteca de la clase contenga la lógica de WinForm y requiera que tenga referencias a todas las referencias de WinForm. Pero, ¿cómo hago una llamada al proyecto de WinForms (u otra cosa) para mostrar el formulario personalizado de WinForm? Habría una referencia circular donde la biblioteca de la clase haría referencia a la aplicación principal de WinForm y la aplicación WinForm haría referencia al proyecto de la biblioteca de la clase.
¿Cuál es la forma estándar de hacer esto?
pensaría en él como un evento de la biblioteca de clases e implementar un oyente dentro de su Código de UI (ya sea consola o Winforms). – Lazarus