Question

Je l'ai utilisé pour quelques MEF projets au travail et je l'ai juste regardé fixement vous embêter avec monorail dans mon temps libre. Je me demandais s'il y avait une façon que je pourrais utiliser pour charger les MEF contrôleurs qui utilise monorail. Monorail semble chercher des contrôleurs dans les assemblées que vous listez dans le web.config:

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

Est-il possible que my.assembly peut ensuite utiliser pour charger MEF plusieurs contrôleurs? Je dois admettre que je n'ai pas bien d'une raison pour laquelle je aurais besoin de cette fonctionnalité, mais je suis juste essayer des choses!

Était-ce utile?

La solution

Monorail est un cadre très extensible. Presque tout est fourni par un service qui peut être facilement commuté avec autre chose. Pour exemple, l'intégration IoC est assez facile, comme vous pouvez changer les services qui crée des contrôleurs, des filtres, des aides, et toutes les autres entités monorail.

Exemple concret: Intégration conteneur Windsor dans Monorail

Maintenant, ce met en place presque tout dans le monorail à fournir par Windsor. Si vous ne souhaitez que les contrôleurs à fournir par le MEF, il y a encore moins de travail.

Je l'ai très peu de connaissance pratique du MEF de sorte qu'il pourrait être un peu loin, mais vous obtiendrez l'idée générale:

  1. Utiliser des mécanismes de découverte pour localiser les types MEF de contrôleur, puis ajouter des types contrôleur au service par défaut IControllerTree. jetez un coup d'oeil à MonoRailFacility.cs inspiration.
  2. Mettre en œuvre un MefControllerFactory : IControllerFactory qui utilisera aux contrôleurs MEF instancier en cas de besoin. L'inspiration est à WindsorControllerFactory.cs

Autres conseils

Ce n'est pas quelque chose que vous pouvez utiliser encore, mais un coup d'oeil au blog de Hammett ici , où il parle de ce qu'il est pour le prototypage monorail 3.0 (y compris le soutien pour MEF par défaut).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top