Запустите непрерывную пользовательскую логику приложения на стороне сервера.Точка входа? - PullRequest
2 голосов
/ 22 августа 2011

Я создаю какую-то систему плагинов. В настоящее время я использовал WinForms приложение для загрузки сборок, используя Assembly.Load и Activator.CreateInstance. Графический интерфейс WinForms должен был показывать только имена загруженных в данный момент сборок (плагинов).

В библиотеке PluginManager есть класс, который создает и хранит список всех IPlugin разработчиков.

Однако теперь я хочу получить доступ к списку плагинов (только их названия) из приложения Silverlight.

У меня есть приложение Silverlight 4, созданное в Visual Studio.

Это добавило два проекта:

  • MyProject (проект SL 4)
  • MyProject.Web (содержит стартовую страницу .aspx, на которой запускается файл .xap)

Мне нужно, чтобы PluginManager и его созданные плагины загружались не только во время запроса страницы silverlight (через страницу aspx), но и все время, даже если пользователь никогда не открывает приложение silverlight в браузере. И я не совсем понимаю, что является отправной точкой проекта .Web. (в консольном приложении я поместил бы код в метод Main, в WinForms в обработчике событий Loaded, но я не знаю, где запустить мой «сервис» в этом .Web проекте).

Как это работает? Где я должен создать свой экземпляр PluginManager? Является ли этот проект .Web недолговечным только во время HTTP-запроса или он может выполняться непрерывно?

1 Ответ

0 голосов
/ 22 августа 2011

Добавьте Global.asax к MyProject.Web.И сделать это в методе Application_Start ().Этот метод вызывается только один раз при сборке приложения.

Если вам нужно запустить PluginManager до того, как приложение будет создано, вы должны создать службу Windows, которая запускается из вашего установщика.Этот сервис будет создавать экземпляр PluginManager.

...