使用NInject(最好是2.0),我们在Web应用程序中连接对象依赖项时有哪些选项?
可以在XML配置文件中定义它们吗?
还是必须通过代码完成?
答案 0 :(得分:10)
基于xml的配置有一个扩展名:https://github.com/ninject/ninject.extensions.xml
您可以在代码中执行更强大的绑定。
答案 1 :(得分:5)
Ninject没有XML配置,很抱歉,但我无法提供直接链接(因为他们的网站有flash元素),但这里是ninject.org的引文:
从XML中解放自己
大多数其他.NET依赖注入 框架是围绕使用而设计的 XML来声明类型绑定。 而不是强迫你写 繁琐且容易出错的文字, Ninject能说一口流利 界面,让你连接 您的应用程序使用的部分 完整的代码。这意味着你可以 利用的特点 IDE和编译器,就像代码完成一样 和类型安全。
答案 2 :(得分:4)
我在代码中定义绑定时遇到的问题是你必须添加对dll的引用。 如果不添加对新dll的引用(删除对旧的dll的引用),更改代码并重新编译,则无法更改绑定。
如果我们有xml配置,我根本不需要引用,也不必重新编译。 现在我有MVC应用程序使用DI将存储库传递给控制器。用于添加绑定的Ninject代码没有其他任何东西使用存储库的具体实现。而且我还需要添加对包含实现的dll的引用。只需一行代码!
或者也许有可能使用Ninject实现这一目标?
答案 3 :(得分:3)
你想要实现什么目标?你想配置什么样的东西?动态选择战略?传入端口号码?您可以提供更多关于您正在思考的信息,以便获得更好的答案[您可以接受:P]。
您需要分解以下问题:
appSettings
在第一个池中,在Code中执行它是正确的方法,我无法想到XML会给出的任何优势,尤其是。在强势名称的背景下等。