Je sais que certains frameworks DI supportent ceci (par exemple Ninject), mais je veux spécifiquement savoir si c'est possible avec Autofac. Je souhaite pouvoir demander un conteneur Autofac pour une classe concrète et récupérer une instance avec toutes les dépendances constructeurs appropriées injectées, sans jamais enregistrer cette classe concrète. à savoir, si je ne lie explicitement, alors automatiquement lier la classe concrète elle-même, comme si je l'avais appelé builder.Register<MyClass>();
Est-ce que Auto Autofac peut effectuer une reliure automatique?
Un bon exemple quand cela serait utile est ViewModels. Dans MVVM, la superposition est telle que seule la vue dépend du ViewModel, et cela par une saisie lâche, et vous ne testez pas la View de toutes façons. Il n'est donc pas nécessaire de se moquer du ViewModel pour les tests - et il n'y a donc aucune raison d'avoir une interface pour chaque ViewModel. Donc, dans ce cas, le schéma DI habituel de "enregistrer cette interface pour résoudre cette classe" est une complexité inutile. Auto-contraignant explicite, comme builder.Register<MyClass>();
, se sent aussi comme une étape inutile lorsqu'il s'agit de quelque chose d'aussi simple que d'une classe concrète.
Je suis au courant de la reflection-based registration example dans les docs Autofac, mais ce n'est pas à mon goût non plus. Je ne veux pas la complexité (et la lenteur) de l'enregistrement de toutes les classes possibles à l'avance; Je veux que le cadre me donne ce dont j'ai besoin quand j'en ai besoin. Convention sur la configuration, et tout ça. Y at-il un moyen de configurer Autofac pour qu'il puisse dire "Oh, c'est un type concret, et personne ne l'a encore enregistré, alors je vais agir comme s'il avait été enregistré avec les paramètres par défaut"?
Sweet - ressemble exactement à ce que je cherchais. Merci! –