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

本文关键字:工厂 注入 抽象 Unity | 更新日期: 2023-09-27 17:54:22

我有一个抽象工厂注册注入在一些控制器实例。我可以注册抽象工厂并将其作为注射工厂使用吗?

这是我的:

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

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

如果您的ILevelFactory已正确注册:

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