2

我有一个使用 Ninject 作为 DI 容器的 MCV3 应用程序。

我有一个对象有 2 个构造函数(每个都有 1 个参数)

public MyObject(IDependencyOne dep){}
public MyObject(IDependencyTwo dep){}

如何让 Ninject 根据运行时从 web.config 文件中读取的一些布尔值选择两个构造函数之一?

4

2 回答 2

0

这里,它说:Ninject 没有 XML 配置。

从 XML 中解脱出来

大多数其他 .NET 依赖注入框架都是围绕使用 XML 来声明类型绑定而设计的。Ninject 不是强迫您编写繁琐且容易出错的文本,而是为您提供流畅的界面,让您可以使用成熟的代码连接应用程序的各个部分。这意味着您可以利用 IDE 和编译器的功能,例如代码完成和类型安全。

将 IoC 绑定移入代码并移出 XML 是一种普遍趋势(无论如何,在我认识或关注的人中)。大多数情况下,您可以获得智能感知和运行时错误反馈。

我没有使用它,但有Ninject.Extensions.Xml的候选版本,它允许您在 xml 中设置映射。但是,我通常会回避这样做。还有Ninject.Extensions.Conventions可能是您所追求的。

资源 :

注入和配置

Ninject 和 XML 配置绑定

于 2012-10-26T09:23:54.867 回答
0

您可以将构造函数选择语法与 Conditional Bindings 一起使用 - 请参阅此相关问题/答案以及Contextual Binding 上的相关 wiki 部分

于 2012-10-26T20:15:11.120 回答