Implicitement, l'injection de dépendance dans la classe de Base, tandis que la classe dérivée est résolu grâce à l'Unité

J'ai une Classe de base de Base ayant dépendance au Dep et par défaut et l'Injection de Constructeur de

Class Base : IBase
 {

    public IDep Dep { get; set; }

    public Base()
    {
        Console.WriteLine("Default Constructor Base ");
    }

    [InjectionConstructor]
    public Base(IDep dep)
    {
        Console.WriteLine("Injection Constructor Base ");
        Dep = dep;            
    }
}

Je pensais que la Dépendance de la dep doit obtenir injecté automatiquement(par Constructeur Injection) lors de la classe dérivée est résolu.

Mais ca n'a pas l'air de fonctionner quand j'ai dériver une classe à partir d'elle et de Résoudre cette classe, au Lieu d'un Constructeur par défaut de la Base de la demande.

Je ne peux obtenir que cela fonctionne quand je l'ai appeler explicitement le constructeur de la Classe Dérivée.

class Derived : Base
{

    public Derived ()
    {
        Console.WriteLine("Default Constructor Derived ");
    }

    public Derived (IDep dep) : base(dep1)
    {
        Console.WriteLine("Injection Constructor Derived ");            
    }
}

Ne l'unité de fournir une quelconque façon implicitement appel à l'injection Constructeur de la classe de base (ce n'est pas explicite Construtor appel)?
Si non, Est-il une raison pourquoi l'unité de conteneur n'est pas de faire par lui-même??

Vos problèmes sont causés par le fait d'avoir plusieurs constructeurs. Vos services ne devrait avoir qu'un seul constructeur. Avoir plusieurs constructeurs est un anti-pattern et il devrait être évité.
J'ai reçu votre point que plusieurs constructeurs est un anti-pattern. Mais le fait d'enlever le constructeur par Défaut ne résout pas le but ici.
Je pense qu'il fait résout vos problèmes, parce que si les deux Base et Derived contiennent chacun un constructeur qui prend dans les dépendances nécessaires, le problème de l'habitude. Je suis d'accord cependant avec @BatteryBackupUnit que le fait d'avoir une classe de base peut ne pas être la meilleure conception.
faut-il toujours inclure un constructeur par défaut de la classe . Je ne peut pas avoir un Paramétrées Constructeur sans définir un Constructeur par Défaut.
Même si je ne produis pas de Constructeur par Défaut de la classe de base de ma classe dérivée constructeur donnera l'erreur de compilation.

OriginalL'auteur Rajat Srivastava | 2014-09-11