c# - 在 Unity 中使用抽象工厂作为注入(inject)工厂?

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

我在一些 Controller 实例中注册了一个抽象工厂用于注入(inject)。 我可以注册那个抽象工厂并将其用作注入(inject)工厂吗?

这是我的:

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。

最佳答案

如果您的 ILevelFactory 已正确注册:

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

关于c# - 在 Unity 中使用抽象工厂作为注入(inject)工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873757/

相关文章:

c# - ASP.NET HTML - 文本框非常靠近,需要帮助在它们之间留出空间

c# - 如何在 C# 中将项目从一个列表移动到另一个列表?

c# - 如何将全局异常处理程序添加到 Metro Style 应用程序?

java - 定义抽象对象的实现

.net - Unity 'GetAllInstances' 没有返回任何内容

c# - MVC 3 beta + Dependency Resolver + Unity = 有​​问题

c# - 显示 C# 1 数据类型的通用等效项的表格

oop - 在Golang中用一个struct,把它当成一个类来解决依赖不好吗?

android - 使用 Dagger 2.x 注入(inject)单例类

c# - Unity 拦截和异常