添加工作单元

This commit is contained in:
黎明
2022-12-26 14:19:12 +08:00
parent c964b98240
commit ec06d30d59
15 changed files with 297 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ using Yi.Framework.Interface;
using Yi.Framework.Job;
using Yi.Framework.Repository;
using Yi.Framework.Service;
using Yi.Framework.Uow.Interceptors;
using Yi.Framework.WebCore.AutoFacExtend;
using Module = Autofac.Module;
@@ -48,7 +49,8 @@ namespace Yi.Framework.WebCore.AutoFacExtend
containerBuilder.RegisterAssemblyTypes(assemblysServices)
.AsImplementedInterfaces()
.InstancePerLifetimeScope()
.EnableInterfaceInterceptors();
.EnableInterfaceInterceptors()
.InterceptedBy(typeof(UnitOfWorkInterceptor));
///反射注册任务调度层
var assemblysJob = GetDll("Yi.Framework.Job.dll");

View File

@@ -1,5 +1,6 @@

using Autofac;
using Autofac.Extras.DynamicProxy;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using System;
@@ -9,6 +10,7 @@ using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Attribute;
using Yi.Framework.Uow.Interceptors;
namespace Yi.Framework.WebCore.MiddlewareExtend
{
@@ -44,41 +46,41 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
case LifeTime.Singleton:
if (type.IsGenericType)
{
build.RegisterGeneric(type).As(serviceType).SingleInstance();
build.RegisterGeneric(type).As(serviceType).SingleInstance().EnableInterfaceInterceptors();
}
else
{
build.RegisterType(type).As(serviceType).SingleInstance();
build.RegisterType(type).As(serviceType).SingleInstance().EnableInterfaceInterceptors();
}
break;
case LifeTime.Scoped:
if (type.IsGenericType)
{
build.RegisterGeneric(type).As(serviceType).InstancePerLifetimeScope();
build.RegisterGeneric(type).As(serviceType).InstancePerLifetimeScope().EnableInterfaceInterceptors();
}
else
{
build.RegisterType(type).As(serviceType).InstancePerLifetimeScope();
build.RegisterType(type).As(serviceType).InstancePerLifetimeScope().EnableInterfaceInterceptors();
}
break;
case LifeTime.Transient:
if (type.IsGenericType)
{
build.RegisterGeneric(type).As(serviceType).InstancePerDependency();
build.RegisterGeneric(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors();
}
else
{
build.RegisterType(type).As(serviceType).InstancePerDependency();
build.RegisterType(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors();
}
break;
default:
if (type.IsGenericType)
{
build.RegisterGeneric(type).As(serviceType).InstancePerDependency();
build.RegisterGeneric(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors();
}
else
{
build.RegisterType(type).As(serviceType).InstancePerDependency();
build.RegisterType(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors();
}
break;
}

View File

@@ -36,6 +36,7 @@
<ItemGroup>
<ProjectReference Include="..\Yi.Framework.Core\Yi.Framework.Core.csproj" />
<ProjectReference Include="..\Yi.Framework.Service\Yi.Framework.Service.csproj" />
<ProjectReference Include="..\Yi.Framework.Uow\Yi.Framework.Uow.csproj" />
</ItemGroup>
<ItemGroup>