Jaki jest przyjęty wzorzec dla aplikacji, która może być uruchamiana jako usługa lub aplikacja konsoli

Mam projekt, który jest wdrażany do produkcji jako usługa systemu Windows. Jednak dla celów rozwoju lokalnego użyteczne byłoby uruchomienie go jako aplikacji konsoli. W tej chwili mam klasę CalledReportingHost która zapewnia moją podstawową funkcjonalność, oraz klasę o nazwie ReportingServiceHost, która dziedziczy zServiceBase i pozwala mi uruchamiać aplikację jako usługę. Istnieje również klasa programu z główną metodą, która wywołujeServiceBase.Run na moim ReportingServiceHost.

Myślę, że muszę napisaćReportingConsoleHost klasa, która pozwala mi uruchomić funkcjonalność w konsoli. Potem muszę zmodyfikować mojeMain reagować na przełącznik linii poleceń i wybierać jeden lub drugi. To są dwa bity, z którymi mam problemy.

Spojrzałem na toto i próbowałem użyć tego kodu, ale moja aplikacja wychodzi natychmiast, nie wyświetla okna konsoli i nie czeka na Enter przed zamknięciem.

Częścią problemu jest to, że nie mam głębokiego zrozumienia, jak te rzeczy działają. definitywny wzorzec podziału mojej funkcjonalności, moje dwa różne sposoby uruchamiania tej funkcji i główna metoda, która wybiera jeden z tych sposobów na podstawie argumentu wiersza poleceń, jest tym, co mam nadzieję osiągnąć.

questionAnswers(4)

yourAnswerToTheQuestion