抱歉,Ninject没有XML配置。很抱歉因为他们的网站有flash元素,我无法提供直接链接,但是这里引用了ninject.org上的一句话:"摆脱XML,大多数其他.NET依赖注入框架是围绕使用XML声明类型绑定设计的。Ninject不会强制您编写繁琐且容易出错的文本,而是提供了一个流畅的接口,让您可以使用完整的代码连接应用程序的各个部分。这意味着您可以利用IDE和编译器的功能,如代码完成和类型安全性。"
我认为在代码中定义绑定的问题在于你必须添加对dll的引用。如果你想要更改绑定,就必须添加对新dll的引用(删除旧dll的引用),并更改代码后重新编译。如果我们有XML配置文件,我将不需要任何引用,也不需要重新编译。目前,我有一个使用DI将存储库传递给控制器的MVC应用程序。除了Ninject代码添加绑定之外,没有任何其他内容使用存储库的具体实现。但是,我仍然需要添加包含实现的dll的引用。只为一行代码!或者,也许可以使用Ninject来实现这一点?
你想实现什么?你想配置什么样的内容?动态选择策略?传递端口号?为了获得更好的答案(可以接受的:P),你可以提供更多关于你的想法的信息。你需要分离以下关注点:1.已知对象的装配(DI)。2.配置-通常你会想要将它们拆分成小的专注子集,例如强类型的配置元素与在一个大堆混杂在一起的全局设置池(如appSettings)。3.插件/未知对象的装配(MEF?)。在第一个池中,用代码来实现是正确的方式,我想不到XML会有任何优势,特别是在强名称等上下文中。
"<add key="configuration-mode" value="release"/>"
的设置。这样更好。 - Restuta