Autofac Integration
Autofac is one of the most used dependency injection frameworks for .NET. It provides advanced features compared to .Net Core's standard DI library, like dynamic proxying and property injection.
Install Autofac Integration
All the startup templates and samples are Autofac integrated. So, most of the time you don't need to manually install this package.
If you're not using a startup template, you can use the ABP CLI to install it to your project. Execute the following command in the folder that contains the .csproj file of your project (suggested to add it to the executable/web project):
If you haven't done it yet, you first need to install the ABP CLI. For other installation options, see the package description page.
Finally, configure AbpApplicationCreationOptions
to replace default dependency injection services by Autofac. It depends on the application type.
ASP.NET Core Application
Call UseAutofac()
in the Program.cs file as shown below:
If you are using the static WebApplication
class, you can call the UseAutofac()
extension method as shown below:
Console Application
Call UseAutofac()
method in the AbpApplicationFactory.Create
options as shown below:
Using the Autofac Registration API
If you want to use Autofac's advanced registration API, you need to access the ContainerBuilder
object. Volo.Abp.Autofac nuget package defines the IServiceCollection.GetContainerBuilder()
extension method to obtain the ContainerBuilder
object.
Example: Get the ContainerBuilder
object in the ConfigureServices
method of your module class
You should install the Volo.Abp.Autofac nuget package to the project that you want to use the Autofac API.