Использование абстрактной фабрики как инъекционной фабрики в Unity? - PullRequest
5 голосов
/ 03 мая 2011

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

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

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 Ответ

6 голосов
/ 03 мая 2011

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

RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))
...