Voici l'exemple de code:propriété automatiquement à la fin création d'un composant avec Autofac
public interface IService<TEntity> {
IContext Context { get; set; }
//unimportant methods
bool Validate(TEntity entity);
void Add(TEntity enttity);
}
public class UsersController : Controller {
private IService<User> _service;
public MyController(IService<User> service){
_service = service;
_service.Context = ControllerContext;
}
}
J'utilise AutofacControllerFactory pour créer des contrôleurs dans mon application ASP.NET MVC. Est-il possible d'éliminer cette ligne de code dans le constructeur de chaque contrôleur:
_service.Context = ControllerContext;
En d'autres termes: est-il possible de définir automatiquement cette propriété avec ControllerContext? Cela devrait être possible car chaque implémentation IService possède une propriété IContext configurable.
Dois-je étendre AutofacControllerFactory ou existe-t-il un moyen standard de le faire?
Mark, merci pour la réponse. Dans mon cas, le service est un service de coordination de l'interface utilisateur, il est spécifique à asp.net mvc UI et devrait en savoir beaucoup à ce sujet. Mon service gère le processus de validation entre le modèle et l'interface utilisateur. – Valentin
Même ainsi, vous rendre les choses beaucoup plus facile si vous pouvez vous débarrasser de la dépendance circulaire ... –