diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/BasicTenantInfo.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/BasicTenantInfo.cs
new file mode 100644
index 00000000..7b564ea3
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/BasicTenantInfo.cs
@@ -0,0 +1,24 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户信息
+///
+public class BasicTenantInfo
+{
+ ///
+ /// 租户ID
+ ///
+ public Guid? TenantId { get; }
+
+ ///
+ /// 租户ID 名称
+ ///
+ public string Name { get; }
+
+ ///
+ public BasicTenantInfo(Guid? tenantId, string? name = null)
+ {
+ TenantId = tenantId;
+ Name = name ?? string.Empty;
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/CurrentTenant.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/CurrentTenant.cs
new file mode 100644
index 00000000..0bbf4825
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/CurrentTenant.cs
@@ -0,0 +1,60 @@
+using Yi.Framework.Core.Utils;
+
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 当前租户实现
+///
+public class CurrentTenant : ICurrentTenant
+{
+ private readonly ICurrentTenantAccessor _currentTenantAccessor;
+
+ ///
+ public CurrentTenant(ICurrentTenantAccessor currentTenantAccessor)
+ {
+ _currentTenantAccessor = currentTenantAccessor;
+ }
+
+ ///
+ /// 是否有效
+ ///
+ public virtual bool IsAvailable => Id != Guid.Empty;
+
+ ///
+ /// 租户ID
+ ///
+ public virtual Guid Id => _currentTenantAccessor.Current?.TenantId ?? Guid.Empty;
+
+ ///
+ /// 租户名称
+ ///
+ public string? Name => _currentTenantAccessor.Current?.Name;
+
+ ///
+ /// 替换租户
+ ///
+ ///
+ ///
+ ///
+ public IDisposable Change(Guid? id, string? name = null)
+ {
+ return SetCurrent(id, name);
+ }
+
+ ///
+ /// 设置当前租户
+ ///
+ ///
+ private IDisposable SetCurrent(Guid? tenantId, string? name = null)
+ {
+ BasicTenantInfo? parentScope = _currentTenantAccessor.Current;
+ _currentTenantAccessor.Current = new BasicTenantInfo(tenantId, name);
+
+ return new DisposeAction>(static ((ICurrentTenantAccessor, BasicTenantInfo) state) =>
+ {
+ (ICurrentTenantAccessor currentTenantAccessor, BasicTenantInfo parentScope) = state;
+ currentTenantAccessor.Current = parentScope;
+ },
+ (_currentTenantAccessor, parentScope));
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/DefaultCurrentTenantAccessor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/DefaultCurrentTenantAccessor.cs
new file mode 100644
index 00000000..83ec524a
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/DefaultCurrentTenantAccessor.cs
@@ -0,0 +1,28 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 默认租户访问器实现
+///
+public class DefaultCurrentTenantAccessor : ICurrentTenantAccessor
+{
+ private ITenantResolver _tenantResolver;
+
+ ///
+ public DefaultCurrentTenantAccessor(ITenantResolver tenantResolver)
+ {
+ _tenantResolver = tenantResolver;
+ TenantResolveResult? tenantResolveResult = _tenantResolver.ResolveTenantIdOrNameAsync().Result;
+ string? tenantIdStr = tenantResolveResult.TenantIdOrName;
+
+ Current = Guid.TryParse(tenantIdStr, out Guid tehnantId)
+ ? new BasicTenantInfo(tehnantId)
+ : new BasicTenantInfo(Guid.Empty);
+ }
+
+ ///
+ /// 当前租户信息
+ ///
+ public BasicTenantInfo Current { get; set; }
+
+}
+
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Extensions/MultiTenancyExtensions.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Extensions/MultiTenancyExtensions.cs
new file mode 100644
index 00000000..1d93bcf8
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Extensions/MultiTenancyExtensions.cs
@@ -0,0 +1,42 @@
+using Microsoft.Extensions.DependencyInjection;
+using Yi.Framework.MultiTenancy.ResolveContributor;
+
+namespace Yi.Framework.MultiTenancy.Extensions;
+
+///
+/// 租户注入扩展方法
+///
+public static class MultiTenancyExtensions
+{
+ ///
+ /// 注入 租户
+ ///
+ ///
+ ///
+ public static IServiceCollection AddCurrentTenant(this IServiceCollection services)
+ {
+ services.Configure(option =>
+ {
+ //添加租户解析器,默认添加从当前用户中获取
+
+ //添加从httpheader,解析TenantId配置的租户id
+ option.TenantResolvers.Add(new HttpHeaderTenantResolveContributor());
+
+ //添加配置租户解析器,解析TenantId配置的租户id
+ option.TenantResolvers.Add(new ConfigurationTenantResolveContributor());
+ });
+
+ //添加租户解析器注入
+ services.AddTransient();
+
+ //添加当前租户
+ services.AddTransient();
+
+ //添加默认访问器
+ services.AddTransient();
+
+ return services;
+
+
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenant.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenant.cs
new file mode 100644
index 00000000..2d892e11
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenant.cs
@@ -0,0 +1,29 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 当前租户接口
+///
+public interface ICurrentTenant
+{
+ ///
+ /// 是否有效
+ ///
+ bool IsAvailable { get; }
+
+ ///
+ /// 租户ID
+ ///
+ Guid Id { get; }
+
+ ///
+ /// 租户名称
+ ///
+ string? Name { get; }
+
+ ///
+ /// 替换租户
+ ///
+ ///
+ ///
+ IDisposable Change(Guid? id, string? name = null);
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenantAccessor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenantAccessor.cs
new file mode 100644
index 00000000..63b2cbff
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ICurrentTenantAccessor.cs
@@ -0,0 +1,12 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户访问器
+///
+public interface ICurrentTenantAccessor
+{
+ ///
+ /// 当前租户信息
+ ///
+ BasicTenantInfo Current { get; set; }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContext.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContext.cs
new file mode 100644
index 00000000..90585528
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContext.cs
@@ -0,0 +1,21 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 解析器上下文
+/// (作用于各个)之间
+///
+public interface ITenantResolveContext
+{
+ ///
+ IServiceProvider ServiceProvider { get; }
+
+ ///
+ /// 租户ID 或 名称
+ ///
+ string TenantIdOrName { get; set; }
+
+ ///
+ /// 是否已处理
+ ///
+ bool Handled { get; set; }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContributor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContributor.cs
new file mode 100644
index 00000000..a1e4737a
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolveContributor.cs
@@ -0,0 +1,19 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户解析器贡献者
+///
+public interface ITenantResolveContributor
+{
+ ///
+ /// 贡献者名称
+ ///
+ string Name { get; }
+
+ ///
+ /// 解析
+ ///
+ /// 解析器上下文
+ ///
+ Task ResolveAsync(ITenantResolveContext context);
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolver.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolver.cs
new file mode 100644
index 00000000..0f3987e7
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ITenantResolver.cs
@@ -0,0 +1,13 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户解析器接口
+///
+public interface ITenantResolver
+{
+ ///
+ /// 解析租户Id或名称
+ ///
+ ///
+ Task ResolveTenantIdOrNameAsync();
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/ConfigurationTenantResolveContributor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/ConfigurationTenantResolveContributor.cs
new file mode 100644
index 00000000..7396d552
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/ConfigurationTenantResolveContributor.cs
@@ -0,0 +1,41 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Yi.Framework.Data.Entities;
+using Yi.Framework.MultiTenancy;
+
+namespace Yi.Framework.MultiTenancy.ResolveContributor;
+
+///
+/// 租户解析器贡献者
+///
+public class ConfigurationTenantResolveContributor : TenantResolveContributorBase
+{
+ ///
+ /// 租户解析器贡献者基类
+ ///
+ public override string Name => "Configuration";
+
+ ///
+ /// 解析
+ ///
+ /// 解析器上下文
+ ///
+ public override Task ResolveAsync(ITenantResolveContext context)
+ {
+ IConfiguration? configuration = context.ServiceProvider.GetRequiredService();
+
+ string? tenantIdStr = configuration.GetValue(nameof(IMultiTenant.TenantId));
+
+ if (Guid.TryParse(tenantIdStr, out Guid tenantId))
+ {
+ if (tenantId != Guid.Empty)
+ {
+ context.TenantIdOrName = tenantId.ToString();
+ context.Handled = true;
+ }
+ }
+
+ context.Handled = false;
+ return Task.CompletedTask;
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/CurrentUserTenantResolveContributor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/CurrentUserTenantResolveContributor.cs
new file mode 100644
index 00000000..bed9477b
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/CurrentUserTenantResolveContributor.cs
@@ -0,0 +1,40 @@
+using Microsoft.Extensions.DependencyInjection;
+using Yi.Framework.Core.CurrentUsers;
+
+namespace Yi.Framework.MultiTenancy.ResolveContributor;
+
+///
+/// 当前用户中获取租户
+///
+public class CurrentUserTenantResolveContributor : TenantResolveContributorBase
+{
+ ///
+ /// 贡献者名称
+ ///
+ public const string ContributorName = "CurrentUser";
+
+ ///
+ /// 贡献者名称
+ ///
+ public override string Name => ContributorName;
+
+ ///
+ /// 解析
+ ///
+ /// 解析器上下文
+ ///
+ public override Task ResolveAsync(ITenantResolveContext context)
+ {
+ ICurrentUser currentUser = context.ServiceProvider.GetRequiredService();
+ if (currentUser.TenantId != Guid.Empty)
+ {
+ context.Handled = true;
+ context.TenantIdOrName = currentUser.TenantId.ToString();
+ }
+ else
+ {
+ context.Handled = false;
+ }
+ return Task.CompletedTask;
+ }
+}
\ No newline at end of file
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/HttpHeaderTenantResolveContributor.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/HttpHeaderTenantResolveContributor.cs
new file mode 100644
index 00000000..bfc6b8cd
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/ResolveContributor/HttpHeaderTenantResolveContributor.cs
@@ -0,0 +1,52 @@
+
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.DependencyInjection;
+using Yi.Framework.Data.Entities;
+using Yi.Framework.MultiTenancy;
+
+namespace Yi.Framework.MultiTenancy.ResolveContributor;
+
+///
+/// 租户解析器贡献者
+///
+public class HttpHeaderTenantResolveContributor : TenantResolveContributorBase
+{
+ ///
+ /// 贡献者名称
+ ///
+ public override string Name => "HttpHeader";
+
+ ///
+ /// 解析
+ ///
+ /// 解析器上下文
+ ///
+ public override Task ResolveAsync(ITenantResolveContext context)
+ {
+ IHttpContextAccessor? httpContextAccessor = context.ServiceProvider.GetService();
+
+ //如果没有注入http对象,直接跳出
+ if (httpContextAccessor is null)
+ {
+ return Task.CompletedTask;
+ }
+ HttpContext? httpContext = httpContextAccessor.HttpContext;
+ if (httpContext is not null)
+ {
+ string? tenantId = httpContext.Request.Headers
+ .Where(x => x.Key == nameof(IMultiTenant.TenantId))
+ .Select(x => x.Value.ToString())
+ .FirstOrDefault();
+
+ if (tenantId is not null)
+ {
+ if (Guid.TryParse(tenantId, out Guid tid))
+ {
+ context.TenantIdOrName = tid.ToString();
+ context.Handled = true;
+ }
+ }
+ }
+ return Task.CompletedTask;
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContext.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContext.cs
new file mode 100644
index 00000000..49ff8723
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContext.cs
@@ -0,0 +1,35 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 解析器上下文
+///
+public class TenantResolveContext : ITenantResolveContext
+{
+ ///
+ public TenantResolveContext(IServiceProvider serviceProvider)
+ {
+ ServiceProvider = serviceProvider;
+ }
+
+ ///
+ public IServiceProvider ServiceProvider { get; }
+
+ ///
+ /// 租户ID 或 名称
+ ///
+ public string TenantIdOrName { get; set; }
+
+ ///
+ /// 是否已处理
+ ///
+ public bool Handled { get; set; }
+
+ ///
+ /// 是否已经处理或者为有效值
+ ///
+ public bool HasResolvedTenantOrHost()
+ {
+ return Handled
+ || TenantIdOrName != Guid.Empty.ToString() && !string.IsNullOrWhiteSpace(TenantIdOrName);
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContributorBase.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContributorBase.cs
new file mode 100644
index 00000000..6a926822
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveContributorBase.cs
@@ -0,0 +1,19 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户解析器贡献者基类
+///
+public abstract class TenantResolveContributorBase : ITenantResolveContributor
+{
+ ///
+ /// 贡献者名称
+ ///
+ public abstract string Name { get; }
+
+ ///
+ /// 解析
+ ///
+ /// 解析器上下文
+ ///
+ public abstract Task ResolveAsync(ITenantResolveContext context);
+}
\ No newline at end of file
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveOptions.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveOptions.cs
new file mode 100644
index 00000000..b84ce407
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveOptions.cs
@@ -0,0 +1,27 @@
+
+
+using Yi.Framework.MultiTenancy.ResolveContributor;
+
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 解析器属性
+///
+public class TenantResolveOptions
+{
+ ///
+ /// 构造函数
+ ///
+ public TenantResolveOptions()
+ {
+ TenantResolvers = new List
+ {
+ new CurrentUserTenantResolveContributor()
+ };
+ }
+
+ ///
+ /// 解析器贡献者。由这帮东西为框架提供 租户ID
+ ///
+ public List TenantResolvers { get; }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveResult.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveResult.cs
new file mode 100644
index 00000000..08c0e70c
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolveResult.cs
@@ -0,0 +1,17 @@
+namespace Yi.Framework.MultiTenancy;
+
+///
+/// 租户解析器结果
+///
+public class TenantResolveResult
+{
+ ///
+ /// 租户ID 或 名称
+ ///
+ public string TenantIdOrName { get; set; } = Guid.Empty.ToString();
+
+ ///
+ /// 存储遍历过的
+ ///
+ public List AppliedResolvers { get; } = new List();
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolver.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolver.cs
new file mode 100644
index 00000000..e1cdc0f0
--- /dev/null
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/TenantResolver.cs
@@ -0,0 +1,49 @@
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
+
+namespace Yi.Framework.MultiTenancy;
+
+///
+///
+///
+public class TenantResolver : ITenantResolver
+{
+ private readonly IServiceProvider _serviceProvider;
+ private readonly TenantResolveOptions _options;
+
+ ///
+ /// 构造函数
+ ///
+ public TenantResolver(IOptions options, IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ _options = options.Value;
+ }
+
+ ///
+ /// 解析租户Id或名称
+ ///
+ public virtual async Task ResolveTenantIdOrNameAsync()
+ {
+ TenantResolveResult? result = new TenantResolveResult();
+
+ using (IServiceScope? serviceScope = _serviceProvider.CreateScope())
+ {
+ TenantResolveContext? context = new TenantResolveContext(serviceScope.ServiceProvider);
+
+ foreach (ITenantResolveContributor tenantResolver in _options.TenantResolvers)
+ {
+ await tenantResolver.ResolveAsync(context);
+
+ result.AppliedResolvers.Add(tenantResolver.Name);
+
+ if (context.HasResolvedTenantOrHost())
+ {
+ result.TenantIdOrName = context.TenantIdOrName;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Yi.Framework.MultiTenancy.csproj b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Yi.Framework.MultiTenancy.csproj
index 132c02c5..4a1d9a1a 100644
--- a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Yi.Framework.MultiTenancy.csproj
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/Yi.Framework.MultiTenancy.csproj
@@ -6,4 +6,9 @@
enable
+
+
+
+
+
diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/YiFrameworkMultiTenancyModule.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/YiFrameworkMultiTenancyModule.cs
index 96af9a94..808ec642 100644
--- a/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/YiFrameworkMultiTenancyModule.cs
+++ b/Yi.Framework.Net6/src/framework/Yi.Framework.MultiTenancy/YiFrameworkMultiTenancyModule.cs
@@ -1,7 +1,20 @@
-namespace Yi.Framework.MultiTenancy
-{
- public class YiFrameworkMultiTenancyModule
- {
+using Microsoft.AspNetCore.Builder;
+using Microsoft.Extensions.DependencyInjection;
+using StartupModules;
+using Yi.Framework.MultiTenancy.Extensions;
+namespace Yi.Framework.MultiTenancy
+{
+ public class YiFrameworkMultiTenancyModule : IStartupModule
+ {
+ public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
+ {
+
+ }
+
+ public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
+ {
+ services.AddCurrentTenant();
+ }
}
}
\ No newline at end of file
diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs
index 34d1deb2..c2c5e25c 100644
--- a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs
+++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs
@@ -1,9 +1,15 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using StartupModules;
+using Yi.Framework.Core.Attributes;
+using Yi.Framework.Core;
+using Yi.Framework.Ddd;
namespace Yi.Framework.FileManager
{
+ [DependsOn(
+ typeof(YiFrameworkDddModule)
+ )]
public class YiFrameworkFileManagerModule : IStartupModule
{
public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs
index 653d1a11..4c641b5d 100644
--- a/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs
+++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs
@@ -1,12 +1,14 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using StartupModules;
-using Yi.Framework.Core;
using Yi.Framework.Core.Attributes;
+using Yi.Framework.Ddd;
namespace Yi.Framework.OperLogManager
{
- [DependsOn(typeof(YiFrameworkCoreModule))]
+ [DependsOn(
+ typeof(YiFrameworkDddModule)
+ )]
public class YiFrameworkOperLogManagerModule : IStartupModule
{
public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)