Autofac is an inversion of control (IoC) container for Microsoft .NET. It manages the dependencies between classes so that applications stay easy to change as they grow in size and complexity. This is achieved by treating regular .NET classes as components.
The Autofac project pages can be found here. For questions and support requests you can use the autofac tag here at Stack Overflow.
Autofac keeps out of your way and places as few constraints on your design as possible.
Zero Intrusion: Components don't need to reference Autofac.
Simple Extension Points: Activation events like OnActivating(e => e.Instance.Start())
can achieve a lot of customisation in very little code.
Robust Resource Management: Autofac takes on the burden of tracking disposable components to ensure that resources are released when they should be.
Multiple Services per Component: Fine-grained interfaces are great for controlling dependencies. Autofac allows one component to provide multiple services.
Flexible Module System: Strike a balance between the deployment-time benefits of XML configuration and the clarity of C# code with Autofac modules.
Installation: Autofac can most easily be installed through its NuGet package.