using GFramework.Core.Abstractions.architecture; namespace GFramework.Core.architecture; /// /// 作用域上下文提供者,用于多架构实例场景 /// public sealed class ScopedContextProvider : IArchitectureContextProvider { private readonly IArchitectureContext _context; /// /// 初始化作用域上下文提供者 /// /// 要绑定的架构上下文实例 public ScopedContextProvider(IArchitectureContext context) { _context = context; } /// /// 获取当前的架构上下文 /// /// 架构上下文实例 public IArchitectureContext GetContext() => _context; /// /// 尝试获取指定类型的架构上下文 /// /// 架构上下文类型 /// 输出的上下文实例 /// 如果成功获取则返回true,否则返回false public bool TryGetContext(out T? context) where T : class, IArchitectureContext { if (_context is T typedContext) { context = typedContext; return true; } context = null; return false; } }