在Unity中使用抽象工厂作为注入?

时间:2011-05-03 18:07:34

标签: c# dependency-injection unity-container enterprise-library abstract-factory

我在一些控制器实例中注册了一个抽象工厂注入。 我可以注册那个抽象工厂并将其用作注塑工厂吗?

这就是我所拥有的:

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 个答案:

答案 0 :(得分:6)

如果您的ILevelFactory已正确注册:

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