// #nullable enable namespace TestApp; partial class MyRule : global::GFramework.Core.Abstractions.Rule.IContextAware { private global::GFramework.Core.Abstractions.Architectures.IArchitectureContext? _context; private static global::GFramework.Core.Abstractions.Architectures.IArchitectureContextProvider? _contextProvider; /// /// 自动获取的架构上下文(懒加载,默认使用 GameContextProvider) /// protected global::GFramework.Core.Abstractions.Architectures.IArchitectureContext Context { get { if (_context == null) { _contextProvider ??= new global::GFramework.Core.Architectures.GameContextProvider(); _context = _contextProvider.GetContext(); } return _context; } } /// /// 配置上下文提供者(用于测试或多架构场景) /// /// 上下文提供者实例 public static void SetContextProvider(global::GFramework.Core.Abstractions.Architectures.IArchitectureContextProvider provider) { _contextProvider = provider; } /// /// 重置上下文提供者为默认值(用于测试清理) /// public static void ResetContextProvider() { _contextProvider = null; } void global::GFramework.Core.Abstractions.Rule.IContextAware.SetContext(global::GFramework.Core.Abstractions.Architectures.IArchitectureContext context) { _context = context; } global::GFramework.Core.Abstractions.Architectures.IArchitectureContext global::GFramework.Core.Abstractions.Rule.IContextAware.GetContext() { return Context; } }