iPackage/iPackage.Core.Web/Extensions/AutoFacConfigServerExtensio...

48 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using Autofac;
using Autofac.Extensions.DependencyInjection;
using iPackage.Core.Web.Repositories;
using iPackage.Core.Web.Services;
using iPackage.Core.Web.Services.Contracts;
using iPackage.Models.Service;
using iPackage.Services;
using iPackage.Services.Contracts;
using Microsoft.Extensions.DependencyInjection;
namespace iPackage.Core.Web.Extensions
{
public static class AutoFacConfigExtensions
{
public static IServiceProvider AddAutoFacContainer(
this IServiceCollection serviceCollection,
params Assembly[] projectAssembly)
{
var containerBuilder = new ContainerBuilder();
containerBuilder.Populate(serviceCollection);
var assembly = projectAssembly;
containerBuilder.RegisterAssemblyTypes(assembly)
.AssignableTo<IScopedDependency>()
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
var container = containerBuilder.Build();
return new AutofacServiceProvider(container);
}
}
public static class AutoFacConfigServerExtensions
{
public static IServiceProvider AddAutoFacServerContainer(this IServiceCollection serviceCollection, params Assembly[] projectAssembly)
{
var list = projectAssembly.ToList();
list.Add(typeof(IRepositoryWrapper).Assembly);
list.Add(typeof(IDbService).Assembly);
list.Add(typeof(IImageService).Assembly);
return serviceCollection.AddAutoFacContainer(list.ToArray());
}
}
}