//
#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;
}
}