Использование абстрактной фабрики как инъекционной фабрики в 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.
1 ответ
Решение
Если ваш ILevelFactory правильно зарегистрирован:
RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))