using GFramework.Core.Abstractions.environment; using GFramework.Core.Abstractions.rule; namespace GFramework.Core.extensions; /// /// 提供对 IContextAware 接口的环境访问扩展方法 /// public static class ContextAwareEnvironmentExtensions { /// /// 获取指定类型的环境对象 /// /// 要获取的环境对象类型 /// 上下文感知对象 /// 指定类型的环境对象,如果无法转换则返回null public static T? GetEnvironment(this IContextAware contextAware) where T : class { ArgumentNullException.ThrowIfNull(contextAware); var context = contextAware.GetContext(); return context.GetEnvironment() as T; } /// /// 获取环境对象 /// /// 上下文感知对象 /// 环境对象 public static IEnvironment GetEnvironment(this IContextAware contextAware) { ArgumentNullException.ThrowIfNull(contextAware); var context = contextAware.GetContext(); return context.GetEnvironment(); } }