Использование абстрактной фабрики в качестве фабрики инъекций в Unity?

У меня есть абстрактная фабрика, зарегистрированная для внедрения в некоторых экземплярах контроллера. Могу ли я зарегистрировать эту абстрактную фабрику и использовать ее как фабрику инъекций?

Вот что у меня есть:

public interface ILevelFactory
{
    Levels Create();
}

.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(new InjectionFactory((c) => StaticLevelFactory.GetLevels()))

Желаемая ситуация:

.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(*** look up and use ILevelFactory ***)

Короче говоря, я хочу избавиться от StaticLevelFactory.


person Carl R    schedule 03.05.2011    source источник


Ответы (1)


Если ваш ILevelFactory правильно зарегистрирован:

RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))
person jeroenh    schedule 03.05.2011