unity-container - 如何注册实现相同接口(interface)的多个类型

标签 unity-container enterprise-library

我有一个接口(interface),它被 2 个类使用。我正在使用统一配置来识别基于接口(interface)的实例。

现在我想知道我应该如何注册这些类型,以便我可以根据单个接口(interface)本身调用适当的实现。

最佳答案

我是这样做的:

        var container = new UnityContainer().RegisterType<IAmImplementedMoreThanOnce, Implementation1>("Implementation1")
                                            .RegisterType<IAmImplementedMoreThanOnce, Implementation2>("Implementation2")
                                            .RegisterType<IHaveDependencies1, WithDependenciesImplementation1>(new InjectionConstructor(new ResolvedParameter<IAmImplementedMoreThanOnce>("Implementation1")))
                                            .RegisterType<IHaveDependencies2, WithDependenciesImplementation2>(new InjectionConstructor(new ResolvedParameter<IAmImplementedMoreThanOnce>("Implementation2")));

关于unity-container - 如何注册实现相同接口(interface)的多个类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109404/

相关文章:

c# - MVVM Light + Unity 还是 Prism?

.net - 是否可以禁用 UnityContainer 的自动实例化行为?

c# - 哪些数据库库与 TransactionScope 合作?

c# - 为什么 IDataReader 丢失一行?

database - 无法构造类型数据库。您必须配置容器以提供此值 (EntLib 5 + ODP.NET)

unity-container - 为什么我应该更喜欢 StructureMap 而不是 Unity?

mvvm - Prism 7 - 将 IContainer 对象注入(inject) View 模型

c# - 在 Unity 中将通用存储库与 TEntity 结合使用

enterprise-library - 企业库 : Logging Block and Email

logging - 在日志应用程序 block 中将日期添加到日志文件名