Могу ли я загружать контроллеры в монорельсе, используя MEF?

StackOverflow https://stackoverflow.com/questions/3722375

  •  03-10-2019
  •  | 
  •  

Вопрос

Я использовал MEF для нескольких проектов на работе, и я просто смотрел во внимание с монорельсом в свободное время. Мне было интересно, если бы я мог использовать MEF для загрузки контроллеров, которые использует монорельсы. Монорельс, по-видимому, ищет контроллеры в узлах, которые вы перечислите в Web.config:

<controllers>
  <assembly>my.assembly</assembly>
</controllers>

Есть ли способ 'My.ashybly' Может тогда использовать MEF, чтобы загрузить больше контроллеров? Я должен признать, что нет, хотя из причины, по которой мне понадобится эта функциональность, но я просто пробую вещи!

Это было полезно?

Решение

Монорельс - очень расширяемая структура. Почти все предоставляется услугой, которую можно легко переключиться с чем-то другим. Например, интеграция IOC довольно проста, так как вы можете переключать сервисы, которые создают контроллеры, фильтры, помощники и все остальные организации монореил.

Бетонный пример: Интеграция виндзорского контейнера в монорелью

Теперь это устанавливает почти все в монорельсе, которое будет предоставлено Windsor. Если вам нужно только контроллеры, которые будут предоставлены MEF, есть еще меньше работы.

У меня очень мало работающих знаний МЭФ, так что это может быть немного, но вы получите общую идею:

  1. Используйте механизмы Discovery Mef, чтобы найти типы контроллеров, затем добавить типы контроллеров по умолчанию IControllerTree оказание услуг. заглядывать MonoRailFacility.cs для вдохновения.
  2. Реализовать А. MefControllerFactory : IControllerFactory Это будет использовать MEF для экземпляров контроллеров при необходимости. Вдохновение в WindsorControllerFactory.cs

Другие советы

Это не то, что вы можете использовать еще, но взглянуть на блог Hammett здесь, Где он говорит о том, что он является прототипом для монорельса 3.0 (включая поддержку MEF по умолчанию).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top