From 1e4877a4659862813ef3767ab8d6428d4121fff4 Mon Sep 17 00:00:00 2001 From: Xeevis Date: Sun, 23 Jun 2019 07:35:53 +0200 Subject: [PATCH] Copy Autofac-Integration.md --- docs/cs/Autofac-Integration.md | 84 ++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs/cs/Autofac-Integration.md diff --git a/docs/cs/Autofac-Integration.md b/docs/cs/Autofac-Integration.md new file mode 100644 index 0000000000..b3aced3e94 --- /dev/null +++ b/docs/cs/Autofac-Integration.md @@ -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(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(options => + { + options.UseAutofac(); //Autofac integration + })) + { + //... + } + } + } +} +```` +