1

Je peux le faire au château de Windsor:Est-il possible d'injecter des paramètres dans des constructeurs protégés en utilisant Unity?

public abstract class AbstractFactory 
{ 
    protected AbstractFactory(Foo constructorParm) 
    { 
     // Do something with parameter... 
    } 
} 

public class DescendentFactory : AbstractFactory 
{ 
    public DescendentFactory(Foo constructorParm) : base(constructorParm) 
    { 
    } 
} 

// The container is configured via XML, the service AbstractFactory and the 
// type DescendentFactory 
container.Resolve<AbstractFactory>("DescendentFactoryId", new { constructorParm = injectedValue }); 

Est-ce possible dans l'unité? J'ai essayé de le faire mais il se plaint qu'il ne peut pas trouver le constructeur. Il semble que je ne peux injecter via le sous-type.

Répondre

2

Vous pouvez uniquement injecter via le sous-type. Il a besoin d'un constructeur public.