Comparison (pros/cons) of various .NET dependency injection frameworks

I am in the process of selecting a dependency injection framework for a new .NET application. There is a bewildering plethora of these frameworks out there, including Ninject, StructureMap, Unity, Castle Windsor, Spring.NET, etc., etc. I never believe that any one tool is absolutely better or worse than any other, however; it always depends on context and constraints.

With that in mind, can anyone offer some pros and cons of the various .NET dependency injection frameworks, vis-a-vis each other? Which are more suitable for small projects, large projects, etc.? For what types of projects, architectures, and development teams do each work best or not so well? Any wisdom from those who have worked with several of these frameworks would be very helpful...


Here is a nice performance benchmark:

Actually there are two comprehensive comparisons already:

I personally prefer Ninject as it favors convention over configuration. It also makes use of lambda expressions and other C# 3.0 goodies (at a cost of .net 2.0) which makes it's syntax crystal clear.

Need Your Help

Can I stop .NET eating IDs?

c# .net javascript html css

I'm an Information Architect and JavaScript developer by trade nowadays, but recently I've been getting back into back-end coding again. And, whilst trying to get an HTML prototype integrated and

Handling multiple branches in continuous integration

continuous-integration hudson jenkins

I've been dealing with the problem of scaling CI at my company and at the same time trying to figure out which approach to take when it comes to CI and multiple branches. There is a similar questio...