我在一些控制器实例中注册了一个抽象工厂注入。 我可以注册那个抽象工厂并将其用作注塑工厂吗?
这就是我所拥有的:
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。
答案 0 :(得分:6)
如果您的ILevelFactory已正确注册:
RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))