首先,它有很多的项目组成,适合不同的环境,当然它有几个基本的核心库。
为什么它会有这么多的库呢?因为轻量级,易于使用和被扩展是它的目标,代码越是少,你使用代码的可能性越高嘛。。。
Ninject.Web.Common :用于Web扩展和WCF的扩展。
Ninject.Web.Mvc: 用于ASP.NET MVC1和MVC2,好吧,MVC3我不是很清楚,不过Weapsy这个项目是基于MVC3的,所以我暂且认为是支持的。。
Ninject.Web :用于ASP.NET WebForm。
Ninject.Extensions.Wcf :看名字就知道了,仅仅就支持WCF。。。
Ninject.Extensions.Conventions: 提供配置,用于修改Ninject的默认约定。
Ninject.Extensions.Factory: 用于自动创建工厂和实例对象。
Ninject.Extensions.Interception: 用于拦截。
Ninject.Extensions.NamedScope :允许绑定定义范围.
Ninject.Extensions.ContextPreservation: 用于上下文的保存。 经常和NameScope结合起来一起用。
Ninject.Extensions.ChildKernel:为Ninject提供内核定义。
Ninject.Extensions.DependencyCreation:
Ninject.Web.Mvc.FluentValidation:用于MVC Fluent Api的验证。
Ninject.Extensions.Logging: 日志记录。
Ninject.Extensions.bbvEventBroker:
Ninject.Extensions.WeakEventMessageBroker:
Ninject.Extensions.MessageBroker:消息代理。
Ninject.Extensions.Xml: 基于XML的模块加载Ninject。
Ninject.MockingKernel: 用于模拟。
Ninject.Extensions.WF:用于支持工作流。
差不多就这样了,好多。。。。。 找自己感兴趣的吧~~~ 其他没有解释的模块,以后清楚了再记录。
最后注意了:上面都是 Ninject的扩展,Ninject这个项目也是单独存在的,这个是核心,其他的按需下载使用。
Ninject项目的WIKI地址:https://github.com/ninject/ninject
最后关于Ninject版本的问题,有不同的版本,支持.NET Framework2.0 、3.5 、4.0分别有不同的下载支持
Ninject1.5和2.0的区别在于后者对应的版本使用大量的Linq和新的特性。
Ninject1.5文件下载地址如下:
- .NET Framework 3.5
- .NET Framework 2.0
- .NET Compact Framework 3.5
- .NET Compact Framework 2.0
- Silverlight 2.0
- Silverlight 3.0
- Mono 2.0
代码:
Source:
Ninject2.0的下载地址如下:
Ninject2.2的版本
- .NET Framework 4.0
- .NET Framework 4.0 for non web applications
- .NET Framework 3.5
- .NET Framework 3.5 for non web applications
- Silverlight 2.0
- Silverlight 3.0
- Silverlight 4.0
- Windows Phone 7
- Mono 2.0
- Mono 2.0 for non web applications.
- .NET Compact Framework 3.5
代码: