1

я могу сделать это в замке Виндзор:Можно ли вводить параметры в защищенные конструкторы, используя 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 }); 

Возможно ли это в Unity? Я пытался это сделать, но он жалуется, что не может найти конструктор. Кажется, я могу вводить только подтип.

ответ

2

Вы можете вводить только подтип. Ему нужен публичный конструктор.