#c#
#c#
Вопрос:
В очередной раз я ловлю себя на том, что создаю интерфейс IService с параметрами start, stop, status и т.д. Затем создайте менеджер для запуска служб, имеющий зависимости от служб, класс, гарантирующий отсутствие циклических зависимостей и т.д. Все довольно стандартные вещи, уже делали это несколько раз на разных заданиях.
Наверняка должна быть библиотека на nuget? Или, возможно, способ с использованием MEF? Но я ничего не могу найти, Google перенасыщен результатами по службам Windows, службам WCF и т.д.
Кто-нибудь знает о такой вещи, или если «сервис» — это неправильное название, то что я могу найти?
Просто для пояснения на примере:
Мне нужна служба для аутентификации моего пользователя, служба для предоставления данных приложения и служба для предоставления статических данных. Служба данных приложения зависит от службы аутентификации, поскольку пользователь должен пройти проверку подлинности перед получением каких-либо данных. Итак, мне нужна библиотека, в которой я могу создавать эти сервисы, реализующие интерфейс IService, указывающий зависимость. Затем вызовите Start в ServiceManager, и это запустит службу аутентификации и службу статических данных, и как только пользователь аутентифицирован и, следовательно, запущена служба аутентификации, она запустит службу данных приложения. Я писал это уже несколько раз в различных заданиях (поэтому не могу повторно использовать код), так есть ли библиотека, которая предоставляет необходимую мне общую функциональность.
Комментарии:
1. Попробуйте File-> New Project и выберите «Служба Windows».
2. Спасибо, но я не пытаюсь создать службу Windows. Я создаю ряд внутренних «сервисов» для доступа к различным типам данных из разных источников, и мне необходимо управлять этими сервисами, включая обеспечение их запуска в правильном порядке.
3. Вам нужны дополнительные функции, чем службе Windows? Почему вы не можете создать поверх того, что там есть?
4. Это не служба Windows, это класс, который предоставляет сервисоподобные возможности (т. Е. Он запускает, останавливает и предоставляет методы и события), а также менеджер для запуска их всех в правильном порядке.
5. Хорошо, и почему вы не можете использовать службу Windows, поскольку, похоже, у нее есть все необходимые вам функции?
Ответ №1:
Ответ №2:
Службы Windows реализуют ServiceBase (класс)
Это можно найти в System.ServiceProcess
Кроме этого, я не уверен ни в каких интерфейсах…
http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.aspx