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ąć.