Example projects that consume and demonstrate Autofac functionality and integration.
Each example has its own README with what it shows and how to run it.
| Example | Demonstrates | Packages |
|---|---|---|
| AspNetCoreExample | A Startup class whose ConfigureContainer takes a ContainerBuilder |
Autofac.Extensions.DependencyInjection |
| AspNetCoreNoStartupExample | The same wiring in the minimal hosting model, with no Startup class |
Autofac.Extensions.DependencyInjection |
| AspNetCoreChildLifetimeScope | Two hosts sharing one container, each rooted in its own child scope | Autofac.Extensions.DependencyInjection |
| MultitenantExample.AspNetCore | Per-tenant registration overrides, with the tenant read from the query string | Autofac.AspNetCore.Multitenant |
| Example | Demonstrates | Packages |
|---|---|---|
| GenericHostBuilderExample | The generic host without ASP.NET Core, for worker services | Autofac.Extensions.DependencyInjection |
| ConfigurationExample | Registering from autofac.json, including an unreferenced plugin assembly |
Autofac.Configuration |
| AttributeMetadataExample | Metadata by string, class, interface, and attribute, then filtering on it | Autofac.Extras.AttributeMetadata |
| MultitenantExample.ConsoleApplication | Per-tenant overrides with no web request in sight | Autofac.Multitenant |
| DynamicProxyExample | Method interception, wired both on the registration and by attribute | Autofac.Extras.DynamicProxy |
| PoolingExample | Reusing expensive instances across scopes, with a reset-on-return policy | Autofac.Pooling |
| DotGraphExample | Capturing a resolve operation as a Graphviz graph for troubleshooting | Autofac.Diagnostics.DotGraph |
| MiddlewarePipelineExample | Resolve middleware for auditing, timing, caching, ambient state, and scope guards | Autofac |
These target net481 and need Windows. Most run under IIS Express from Visual Studio.
| Example | Demonstrates | Packages |
|---|---|---|
| MvcExample | MVC 5 controllers, action filters, and view pages, plus a WCF client | Autofac.Mvc5, Autofac.Wcf |
| WebFormsExample | Property injection into pages that cannot take constructor arguments | Autofac.Web |
| WcfExample | A WCF service whose implementation is resolved from the container | Autofac.Wcf |
| WebApiExample.OwinSelfHost | Web API 2 self-hosted under OWIN instead of IIS | Autofac.Owin, Autofac.WebApi2, Autofac.WebApi2.Owin |
| MultitenantExample.WcfService | A WCF service resolving a different implementation per tenant | Autofac.Multitenant.Wcf, Autofac.Wcf |
| MultitenantExample.MvcApplication | The client half, carrying tenant identity across the service boundary | Autofac.Multitenant, Autofac.Mvc5 |
ConfigurationExampleInterface and ConfigurationExamplePlugin are supporting libraries for ConfigurationExample rather than examples themselves.
The examples in the repo are always for the latest Autofac versions and libraries. Look at the tags on this repo to see examples for older and/or deprecated functionality.
The examples attempt to stick pretty close to the Autofac documentation so it helps to have that available.
Open this repo in Visual Studio Code.
Examples.slnx contains every sample. The ASP.NET MVC, Web Forms, WCF, and OWIN self-host samples target .NET Framework, so building the whole solution requires Windows; the rest build anywhere.