mirror of https://github.com/abpframework/abp.git
1 changed files with 84 additions and 0 deletions
@ -0,0 +1,84 @@ |
|||||
|
# Autofac Integration |
||||
|
|
||||
|
Autofac is one of the most used dependency injection frameworks for .Net. It provides some advanced features compared to .Net Core standard DI library, like dynamic proxying and property injection. |
||||
|
|
||||
|
## Install Autofac Integration |
||||
|
|
||||
|
> All startup templates and samples are Autofac integrated. So, most of the time you don't need to manually install this package. |
||||
|
|
||||
|
Install [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) nuget package to your project (for a multi-projects application, it's suggested to add to the executable/web project.) |
||||
|
|
||||
|
```` |
||||
|
Install-Package Volo.Abp.Autofac |
||||
|
```` |
||||
|
|
||||
|
Then add `AbpAutofacModule` dependency to your module: |
||||
|
|
||||
|
```csharp |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Volo.Abp.Autofac; |
||||
|
|
||||
|
namespace MyCompany.MyProject |
||||
|
{ |
||||
|
[DependsOn(typeof(AbpAutofacModule))] |
||||
|
public class MyModule : AbpModule |
||||
|
{ |
||||
|
//... |
||||
|
} |
||||
|
} |
||||
|
``` |
||||
|
|
||||
|
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 **Startup.cs** file as shown below: |
||||
|
|
||||
|
````csharp |
||||
|
public class Startup |
||||
|
{ |
||||
|
public IServiceProvider ConfigureServices(IServiceCollection services) |
||||
|
{ |
||||
|
services.AddApplication<MyWebModule>(options => |
||||
|
{ |
||||
|
//Integrate Autofac! |
||||
|
options.UseAutofac(); |
||||
|
}); |
||||
|
|
||||
|
return services.BuildServiceProviderFromFactory(); |
||||
|
} |
||||
|
|
||||
|
public void Configure(IApplicationBuilder app) |
||||
|
{ |
||||
|
app.InitializeApplication(); |
||||
|
} |
||||
|
} |
||||
|
```` |
||||
|
|
||||
|
### Console Application |
||||
|
|
||||
|
Call `UseAutofac()` method in the `AbpApplicationFactory.Create` options as shown below: |
||||
|
|
||||
|
````csharp |
||||
|
using System; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Volo.Abp; |
||||
|
|
||||
|
namespace AbpConsoleDemo |
||||
|
{ |
||||
|
class Program |
||||
|
{ |
||||
|
static void Main(string[] args) |
||||
|
{ |
||||
|
using (var application = AbpApplicationFactory.Create<AppModule>(options => |
||||
|
{ |
||||
|
options.UseAutofac(); //Autofac integration |
||||
|
})) |
||||
|
{ |
||||
|
//... |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
```` |
||||
|
|
||||
Loading…
Reference in new issue