Disons que j'ai une entité utilisateur et que je voudrais définir sa propriété CreationTime dans le constructeur à DateTime.Now. Mais être un adopteur de test unitaire Je ne veux pas accéder directement à DateTime.Now mais utiliser un ITimeProvider:Comment utiliser un conteneur DI/IoC avec le classeur de modèle dans ASP.NET MVC 2+?
public class User {
public User(ITimeProvider timeProvider) {
// ...
this.CreationTime = timeProvider.Now;
}
// .....
}
public interface ITimeProvider {
public DateTime Now { get; }
}
public class TimeProvider : ITimeProvider {
public DateTime Now { get { return DateTime.Now; } }
}
J'utilise ninject 2 dans mon application ASP.NET MVC 2.0. J'ai un UserController et deux méthodes Create (une pour GET et une pour POST). Celui pour GET est simple mais celui pour POST n'est pas si direct et pas si avancé: P parce que j'ai besoin de jouer avec le classeur modèle pour lui dire d'obtenir une référence d'implémentation de ITimeProvider afin de pouvoir construire une instance d'utilisateur. Je voudrais également pouvoir conserver toutes les fonctionnalités du classeur par défaut.
Une chance de résoudre ce simple/élégant/etc? : D
en relation: Ninject thread spécifique http://stackoverflow.com/questions/9186560/ninject-inject-a-dependency-into-a-custom-model-binder-and-using-inrequestscope –