From f87c9cf4218774f04d13cf9668e9ddd4eeee8d88 Mon Sep 17 00:00:00 2001 From: GwWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Sun, 4 Jan 2026 22:14:34 +0800 Subject: [PATCH] =?UTF-8?q?style(csharp):=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=A0=B7=E5=BC=8F=E5=92=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 统一调整代码注释的缩进格式,保持文档注释的一致性 - 简化对象初始化语法,移除不必要的参数名称指定 - 优化条件语句结构,移除多余的花括号 - 调整方法实现格式,使用表达式主体语法简化代码 - 标准化代码缩进和空格使用,提升代码可读性 - [skip ci] --- .../architecture/IArchitectureServices.cs | 4 +- .../command/ICommandBus.cs | 6 +- .../command/ICommandInput.cs | 4 +- .../controller/IController.cs | 6 +- .../environment/IEnvironment.cs | 14 ++-- .../logging/ILoggerFactoryProvider.cs | 6 +- .../query/IQueryBus.cs | 4 +- .../query/IQueryInput.cs | 2 +- .../architecture/AsyncTestArchitecture.cs | 4 +- .../architecture/SyncTestArchitecture.cs | 4 +- .../architecture/TestArchitectureBase.cs | 19 +++-- GFramework.Core.Tests/model/AsyncTestModel.cs | 19 +++-- GFramework.Core.Tests/model/FailingModel.cs | 20 ++--- GFramework.Core.Tests/model/TestModel.cs | 6 +- .../system/AsyncTestSystem.cs | 18 ++++- GFramework.Core.Tests/system/TestSystem.cs | 16 ++-- .../tests/ArchitectureTestsBase.cs | 16 ++-- .../tests/AsyncArchitectureTests.cs | 25 ++++--- .../tests/SyncArchitectureTests.cs | 25 ++++--- GFramework.Core/architecture/Architecture.cs | 22 +++--- .../architecture/ArchitectureConfiguration.cs | 2 +- .../architecture/ArchitectureConstants.cs | 6 +- .../architecture/ArchitectureContext.cs | 2 +- .../architecture/ArchitectureServices.cs | 14 ++-- GFramework.Core/architecture/GameContext.cs | 20 +++-- GFramework.Core/command/CommandBus.cs | 6 +- .../environment/DefaultEnvironment.cs | 6 +- .../environment/EnvironmentBase.cs | 14 ++-- .../extensions/ContextAwareExtensions.cs | 26 +++---- .../extensions/ObjectExtensions.cs | 52 ++++++------- GFramework.Core/ioc/IocContainer.cs | 5 +- .../logging/ConsoleLoggerFactoryProvider.cs | 10 ++- .../logging/LoggerFactoryResolver.cs | 10 +-- .../property/BindablePropertyUnRegister.cs | 2 - GFramework.Core/query/QueryBus.cs | 4 +- .../assets/AssetCatalog.cs | 75 +++++++++---------- .../internals/IsExternalInit.cs | 7 +- .../architecture/AbstractModule.cs | 8 +- .../GodotModuleMarker.cs | 2 +- .../architecture/AbstractArchitecture.cs | 5 +- .../architecture/ArchitectureAnchor.cs | 3 +- .../assets/AbstractResourceFactorySystem.cs | 1 - .../assets/IResourceLoadSystem.cs | 4 +- GFramework.Godot/assets/ResourceLoadSystem.cs | 3 +- .../extensions/signal/SignalBuilder.cs | 15 ++-- .../signal/SignalFluentExtensions.cs | 8 +- GFramework.Godot/logging/GodotLogger.cs | 5 +- .../logging/GodotLoggerFactoryProvider.cs | 11 ++- .../system/AbstractAudioManagerSystem.cs | 1 - .../constants/PathContests.cs | 16 ++-- .../diagnostics/CommonDiagnostics.cs | 4 +- .../generator/AttributeClassGeneratorBase.cs | 8 +- .../generator/AttributeEnumGeneratorBase.cs | 20 ++--- .../MetadataAttributeClassGeneratorBase.cs | 6 +- .../TypeAttributeClassGeneratorBase.cs | 6 +- .../core/GeneratorSnapshotTest.cs | 10 ++- .../ContextAwareGeneratorSnapshotTests.cs | 10 +-- .../diagnostics/ContextAwareDiagnostic.cs | 2 +- .../enums/EnumExtensionsGenerator.cs | 12 +-- .../logging/LoggerGenerator.cs | 16 ++-- .../rule/ContextAwareGenerator.cs | 26 +++---- 61 files changed, 364 insertions(+), 339 deletions(-) diff --git a/GFramework.Core.Abstractions/architecture/IArchitectureServices.cs b/GFramework.Core.Abstractions/architecture/IArchitectureServices.cs index 2aea8be..66b9eb9 100644 --- a/GFramework.Core.Abstractions/architecture/IArchitectureServices.cs +++ b/GFramework.Core.Abstractions/architecture/IArchitectureServices.cs @@ -24,12 +24,12 @@ public interface IArchitectureServices : IContextAware ITypeEventSystem TypeEventSystem { get; } /// - /// 获取命令总线 + /// 获取命令总线 /// public ICommandBus CommandBus { get; } /// - /// 获取查询总线 + /// 获取查询总线 /// public IQueryBus QueryBus { get; } } \ No newline at end of file diff --git a/GFramework.Core.Abstractions/command/ICommandBus.cs b/GFramework.Core.Abstractions/command/ICommandBus.cs index e3f22f0..d843005 100644 --- a/GFramework.Core.Abstractions/command/ICommandBus.cs +++ b/GFramework.Core.Abstractions/command/ICommandBus.cs @@ -1,18 +1,18 @@ namespace GFramework.Core.Abstractions.command; /// -/// 定义命令总线接口,用于执行各种命令 +/// 定义命令总线接口,用于执行各种命令 /// public interface ICommandBus { /// - /// 发送并执行一个命令 + /// 发送并执行一个命令 /// /// 要执行的命令对象 public void Send(ICommand command); /// - /// 发送并执行一个带返回值的命令 + /// 发送并执行一个带返回值的命令 /// /// 命令执行结果的类型 /// 要执行的带返回值的命令对象 diff --git a/GFramework.Core.Abstractions/command/ICommandInput.cs b/GFramework.Core.Abstractions/command/ICommandInput.cs index 57e68d7..7763fa4 100644 --- a/GFramework.Core.Abstractions/command/ICommandInput.cs +++ b/GFramework.Core.Abstractions/command/ICommandInput.cs @@ -1,7 +1,7 @@ namespace GFramework.Core.Abstractions.command; /// -/// 命令输入接口,定义命令模式中输入数据的契约 -/// 该接口作为标记接口使用,不包含任何成员定义 +/// 命令输入接口,定义命令模式中输入数据的契约 +/// 该接口作为标记接口使用,不包含任何成员定义 /// public interface ICommandInput; \ No newline at end of file diff --git a/GFramework.Core.Abstractions/controller/IController.cs b/GFramework.Core.Abstractions/controller/IController.cs index 4f39bb3..9372fd7 100644 --- a/GFramework.Core.Abstractions/controller/IController.cs +++ b/GFramework.Core.Abstractions/controller/IController.cs @@ -1,10 +1,10 @@ namespace GFramework.Core.Abstractions.controller; /// -/// 控制器接口,定义了控制器的基本契约和行为规范 +/// 控制器接口,定义了控制器的基本契约和行为规范 /// /// -/// 该接口为框架中的控制器组件提供统一的抽象定义, -/// 用于实现控制器的标准功能和生命周期管理 +/// 该接口为框架中的控制器组件提供统一的抽象定义, +/// 用于实现控制器的标准功能和生命周期管理 /// public interface IController; \ No newline at end of file diff --git a/GFramework.Core.Abstractions/environment/IEnvironment.cs b/GFramework.Core.Abstractions/environment/IEnvironment.cs index 9c75bfb..3456802 100644 --- a/GFramework.Core.Abstractions/environment/IEnvironment.cs +++ b/GFramework.Core.Abstractions/environment/IEnvironment.cs @@ -1,18 +1,18 @@ namespace GFramework.Core.Abstractions.environment; /// -/// 定义环境接口,提供应用程序运行环境的相关信息 +/// 定义环境接口,提供应用程序运行环境的相关信息 /// public interface IEnvironment { /// - /// 获取环境名称 + /// 获取环境名称 /// public string Name { get; } /// - /// 根据键值获取指定类型的环境配置值 + /// 根据键值获取指定类型的环境配置值 /// /// 要获取的值的类型,必须为引用类型 /// 用于查找配置值的键 @@ -20,7 +20,7 @@ public interface IEnvironment T? Get(string key) where T : class; /// - /// 尝试获取环境值(显式判断) + /// 尝试获取环境值(显式判断) /// /// 要获取的值的类型,必须为引用类型 /// 用于查找配置值的键 @@ -29,7 +29,7 @@ public interface IEnvironment bool TryGet(string key, out T value) where T : class; /// - /// 获取必须存在的环境值(强依赖) + /// 获取必须存在的环境值(强依赖) /// /// 要获取的值的类型,必须为引用类型 /// 用于查找配置值的键 @@ -37,14 +37,14 @@ public interface IEnvironment T GetRequired(string key) where T : class; /// - /// 注册键值对到环境值字典中 + /// 注册键值对到环境值字典中 /// /// 要注册的键 /// 要注册的值 void Register(string key, object value); /// - /// 初始化环境值字典 + /// 初始化环境值字典 /// void Initialize(); } \ No newline at end of file diff --git a/GFramework.Core.Abstractions/logging/ILoggerFactoryProvider.cs b/GFramework.Core.Abstractions/logging/ILoggerFactoryProvider.cs index a6bcd3e..d0321dd 100644 --- a/GFramework.Core.Abstractions/logging/ILoggerFactoryProvider.cs +++ b/GFramework.Core.Abstractions/logging/ILoggerFactoryProvider.cs @@ -1,17 +1,17 @@ namespace GFramework.Core.Abstractions.logging; /// -/// 定义日志工厂提供者的接口,用于创建具有指定名称和最小日志级别的日志记录器 +/// 定义日志工厂提供者的接口,用于创建具有指定名称和最小日志级别的日志记录器 /// public interface ILoggerFactoryProvider { /// - /// 获取或设置日志记录器的最小日志级别,低于此级别的日志将被忽略 + /// 获取或设置日志记录器的最小日志级别,低于此级别的日志将被忽略 /// public LogLevel MinLevel { get; set; } /// - /// 创建一个日志记录器实例 + /// 创建一个日志记录器实例 /// /// 日志记录器的名称,用于标识特定的日志源 /// 配置了指定名称和最小日志级别的ILogger实例 diff --git a/GFramework.Core.Abstractions/query/IQueryBus.cs b/GFramework.Core.Abstractions/query/IQueryBus.cs index 22d2f66..138548c 100644 --- a/GFramework.Core.Abstractions/query/IQueryBus.cs +++ b/GFramework.Core.Abstractions/query/IQueryBus.cs @@ -1,12 +1,12 @@ namespace GFramework.Core.Abstractions.query; /// -/// 查询总线接口,用于发送和处理查询请求 +/// 查询总线接口,用于发送和处理查询请求 /// public interface IQueryBus { /// - /// 发送查询请求并返回结果 + /// 发送查询请求并返回结果 /// /// 查询结果的类型 /// 要发送的查询对象 diff --git a/GFramework.Core.Abstractions/query/IQueryInput.cs b/GFramework.Core.Abstractions/query/IQueryInput.cs index 1a1933d..1aec2b6 100644 --- a/GFramework.Core.Abstractions/query/IQueryInput.cs +++ b/GFramework.Core.Abstractions/query/IQueryInput.cs @@ -1,6 +1,6 @@ namespace GFramework.Core.Abstractions.query; /// -/// 查询输入接口,定义了查询操作的输入规范 +/// 查询输入接口,定义了查询操作的输入规范 /// public interface IQueryInput; \ No newline at end of file diff --git a/GFramework.Core.Tests/architecture/AsyncTestArchitecture.cs b/GFramework.Core.Tests/architecture/AsyncTestArchitecture.cs index 52b09c1..620eda2 100644 --- a/GFramework.Core.Tests/architecture/AsyncTestArchitecture.cs +++ b/GFramework.Core.Tests/architecture/AsyncTestArchitecture.cs @@ -4,12 +4,12 @@ using GFramework.Core.Tests.system; namespace GFramework.Core.Tests.architecture; /// -/// 异步测试架构,用于测试异步模型和系统的初始化 +/// 异步测试架构,用于测试异步模型和系统的初始化 /// public class AsyncTestArchitecture : TestArchitectureBase { /// - /// 异步初始化架构 + /// 异步初始化架构 /// protected override void Init() { diff --git a/GFramework.Core.Tests/architecture/SyncTestArchitecture.cs b/GFramework.Core.Tests/architecture/SyncTestArchitecture.cs index e9d2d60..3a40f0a 100644 --- a/GFramework.Core.Tests/architecture/SyncTestArchitecture.cs +++ b/GFramework.Core.Tests/architecture/SyncTestArchitecture.cs @@ -4,12 +4,12 @@ using GFramework.Core.Tests.system; namespace GFramework.Core.Tests.architecture; /// -/// 同步测试架构类,用于测试架构的生命周期和事件处理 +/// 同步测试架构类,用于测试架构的生命周期和事件处理 /// public sealed class SyncTestArchitecture : TestArchitectureBase { /// - /// 初始化架构组件,注册模型、系统并设置事件监听器 + /// 初始化架构组件,注册模型、系统并设置事件监听器 /// protected override void Init() { diff --git a/GFramework.Core.Tests/architecture/TestArchitectureBase.cs b/GFramework.Core.Tests/architecture/TestArchitectureBase.cs index 251cbb9..6c43b4a 100644 --- a/GFramework.Core.Tests/architecture/TestArchitectureBase.cs +++ b/GFramework.Core.Tests/architecture/TestArchitectureBase.cs @@ -5,35 +5,38 @@ using GFramework.Core.events; namespace GFramework.Core.Tests.architecture; /// -/// 测试架构基类,提供通用的测试架构功能 +/// 测试架构基类,提供通用的测试架构功能 /// public abstract class TestArchitectureBase : Architecture { private Action? _postRegistrationHook; /// - /// 获取就绪事件是否已触发的状态 + /// 获取就绪事件是否已触发的状态 /// public bool ReadyEventFired { get; protected set; } /// - /// 获取初始化方法是否已调用的状态 + /// 获取初始化方法是否已调用的状态 /// public bool InitCalled { get; protected set; } /// - /// 获取架构阶段历史记录列表 + /// 获取架构阶段历史记录列表 /// public List PhaseHistory { get; } = []; /// - /// 添加注册后钩子函数 + /// 添加注册后钩子函数 /// /// 要添加的钩子函数 - public void AddPostRegistrationHook(Action hook) => _postRegistrationHook = hook; + public void AddPostRegistrationHook(Action hook) + { + _postRegistrationHook = hook; + } /// - /// 初始化架构组件,注册模型、系统并设置事件监听器 + /// 初始化架构组件,注册模型、系统并设置事件监听器 /// protected override void Init() { @@ -43,7 +46,7 @@ public abstract class TestArchitectureBase : Architecture } /// - /// 进入指定架构阶段时的处理方法,记录阶段历史 + /// 进入指定架构阶段时的处理方法,记录阶段历史 /// /// 要进入的下一个架构阶段 protected override void EnterPhase(ArchitecturePhase next) diff --git a/GFramework.Core.Tests/model/AsyncTestModel.cs b/GFramework.Core.Tests/model/AsyncTestModel.cs index 7d45c3a..0994f7d 100644 --- a/GFramework.Core.Tests/model/AsyncTestModel.cs +++ b/GFramework.Core.Tests/model/AsyncTestModel.cs @@ -5,19 +5,19 @@ using GFramework.Core.Abstractions.model; namespace GFramework.Core.Tests.model; /// -/// 异步测试模型类,实现了IModel和IAsyncInitializable接口 +/// 异步测试模型类,实现了IModel和IAsyncInitializable接口 /// public sealed class AsyncTestModel : IModel, IAsyncInitializable { private IArchitectureContext _context = null!; /// - /// 获取模型是否已初始化的标志 + /// 获取模型是否已初始化的标志 /// public bool Initialized { get; private set; } /// - /// 异步初始化方法,模拟异步初始化过程 + /// 异步初始化方法,模拟异步初始化过程 /// /// 表示异步操作的Task public async Task InitializeAsync() @@ -27,7 +27,7 @@ public sealed class AsyncTestModel : IModel, IAsyncInitializable } /// - /// 同步初始化方法,该方法不应该被调用 + /// 同步初始化方法,该方法不应该被调用 /// /// 当该方法被调用时抛出异常 public void Init() @@ -37,7 +37,7 @@ public sealed class AsyncTestModel : IModel, IAsyncInitializable } /// - /// 设置架构上下文 + /// 设置架构上下文 /// /// 架构上下文对象 public void SetContext(IArchitectureContext context) @@ -46,13 +46,16 @@ public sealed class AsyncTestModel : IModel, IAsyncInitializable } /// - /// 获取架构上下文 + /// 获取架构上下文 /// /// 架构上下文对象 - public IArchitectureContext GetContext() => _context; + public IArchitectureContext GetContext() + { + return _context; + } /// - /// 处理架构阶段事件 + /// 处理架构阶段事件 /// /// 架构阶段枚举值 public void OnArchitecturePhase(ArchitecturePhase phase) diff --git a/GFramework.Core.Tests/model/FailingModel.cs b/GFramework.Core.Tests/model/FailingModel.cs index 3b73f3e..65008d1 100644 --- a/GFramework.Core.Tests/model/FailingModel.cs +++ b/GFramework.Core.Tests/model/FailingModel.cs @@ -5,14 +5,14 @@ using GFramework.Core.Abstractions.model; namespace GFramework.Core.Tests.model; /// -/// 一个用于测试的失败模型类,实现IModel接口 -/// 该模型在初始化时会故意抛出异常,用于测试异常处理机制 +/// 一个用于测试的失败模型类,实现IModel接口 +/// 该模型在初始化时会故意抛出异常,用于测试异常处理机制 /// public sealed class FailingModel : IModel { /// - /// 初始化模型 - /// 该方法会故意抛出InvalidOperationException异常 + /// 初始化模型 + /// 该方法会故意抛出InvalidOperationException异常 /// /// 总是抛出此异常以模拟初始化失败 public void Init() @@ -21,8 +21,8 @@ public sealed class FailingModel : IModel } /// - /// 设置架构上下文 - /// 该方法为空实现,不执行任何操作 + /// 设置架构上下文 + /// 该方法为空实现,不执行任何操作 /// /// 架构上下文对象 public void SetContext(IArchitectureContext context) @@ -30,8 +30,8 @@ public sealed class FailingModel : IModel } /// - /// 获取架构上下文 - /// 该方法会抛出NotSupportedException异常 + /// 获取架构上下文 + /// 该方法会抛出NotSupportedException异常 /// /// 不返回任何值,总是抛出异常 /// 总是抛出此异常 @@ -41,8 +41,8 @@ public sealed class FailingModel : IModel } /// - /// 处理架构阶段事件 - /// 该方法为空实现,不执行任何操作 + /// 处理架构阶段事件 + /// 该方法为空实现,不执行任何操作 /// /// 当前架构阶段 public void OnArchitecturePhase(ArchitecturePhase phase) diff --git a/GFramework.Core.Tests/model/TestModel.cs b/GFramework.Core.Tests/model/TestModel.cs index e9c59a5..5e8e83a 100644 --- a/GFramework.Core.Tests/model/TestModel.cs +++ b/GFramework.Core.Tests/model/TestModel.cs @@ -5,19 +5,19 @@ using GFramework.Core.Abstractions.model; namespace GFramework.Core.Tests.model; /// -/// 测试模型类,用于框架测试目的 +/// 测试模型类,用于框架测试目的 /// public sealed class TestModel : IModel { private IArchitectureContext _context = null!; /// - /// 获取模型是否已初始化的状态 + /// 获取模型是否已初始化的状态 /// public bool Initialized { get; private set; } /// - /// 初始化模型 + /// 初始化模型 /// public void Init() { diff --git a/GFramework.Core.Tests/system/AsyncTestSystem.cs b/GFramework.Core.Tests/system/AsyncTestSystem.cs index 680b0b9..a45d671 100644 --- a/GFramework.Core.Tests/system/AsyncTestSystem.cs +++ b/GFramework.Core.Tests/system/AsyncTestSystem.cs @@ -5,7 +5,7 @@ using GFramework.Core.Abstractions.system; namespace GFramework.Core.Tests.system; /// -/// 异步测试系统,实现 ISystem 和 IAsyncInitializable +/// 异步测试系统,实现 ISystem 和 IAsyncInitializable /// public sealed class AsyncTestSystem : ISystem, IAsyncInitializable { @@ -19,8 +19,15 @@ public sealed class AsyncTestSystem : ISystem, IAsyncInitializable Initialized = true; } - public void SetContext(IArchitectureContext context) => _context = context; - public IArchitectureContext GetContext() => _context; + public void SetContext(IArchitectureContext context) + { + _context = context; + } + + public IArchitectureContext GetContext() + { + return _context; + } public void Init() { @@ -28,7 +35,10 @@ public sealed class AsyncTestSystem : ISystem, IAsyncInitializable throw new InvalidOperationException("Sync Init should not be called"); } - public void Destroy() => DestroyCalled = true; + public void Destroy() + { + DestroyCalled = true; + } public void OnArchitecturePhase(ArchitecturePhase phase) { diff --git a/GFramework.Core.Tests/system/TestSystem.cs b/GFramework.Core.Tests/system/TestSystem.cs index 2b642e5..2aa6dad 100644 --- a/GFramework.Core.Tests/system/TestSystem.cs +++ b/GFramework.Core.Tests/system/TestSystem.cs @@ -5,27 +5,27 @@ using GFramework.Core.Abstractions.system; namespace GFramework.Core.Tests.system; /// -/// 测试系统类,实现了ISystem接口 +/// 测试系统类,实现了ISystem接口 /// public sealed class TestSystem : ISystem { /// - /// 架构上下文对象 + /// 架构上下文对象 /// private IArchitectureContext _context = null!; /// - /// 获取系统是否已初始化的状态 + /// 获取系统是否已初始化的状态 /// public bool Initialized { get; private set; } /// - /// 获取系统是否已销毁的状态 + /// 获取系统是否已销毁的状态 /// public bool DestroyCalled { get; private set; } /// - /// 设置架构上下文 + /// 设置架构上下文 /// /// 架构上下文对象 public void SetContext(IArchitectureContext context) @@ -34,7 +34,7 @@ public sealed class TestSystem : ISystem } /// - /// 获取架构上下文 + /// 获取架构上下文 /// /// 架构上下文对象 public IArchitectureContext GetContext() @@ -43,7 +43,7 @@ public sealed class TestSystem : ISystem } /// - /// 初始化系统 + /// 初始化系统 /// public void Init() { @@ -51,7 +51,7 @@ public sealed class TestSystem : ISystem } /// - /// 销毁系统 + /// 销毁系统 /// public void Destroy() { diff --git a/GFramework.Core.Tests/tests/ArchitectureTestsBase.cs b/GFramework.Core.Tests/tests/ArchitectureTestsBase.cs index edb39a9..08d349c 100644 --- a/GFramework.Core.Tests/tests/ArchitectureTestsBase.cs +++ b/GFramework.Core.Tests/tests/ArchitectureTestsBase.cs @@ -5,7 +5,7 @@ using NUnit.Framework; namespace GFramework.Core.Tests.tests; /// -/// 架构测试基类,封装同步/异步共通测试逻辑 +/// 架构测试基类,封装同步/异步共通测试逻辑 /// /// 架构类型,必须继承自Architecture public abstract class ArchitectureTestsBase where TArchitecture : Architecture @@ -13,14 +13,14 @@ public abstract class ArchitectureTestsBase where TArchitecture : protected TArchitecture? Architecture; /// - /// 子类必须实现创建具体架构实例 + /// 子类必须实现创建具体架构实例 /// /// 创建的架构实例 protected abstract TArchitecture CreateArchitecture(); /// - /// 测试设置方法,在每个测试开始前执行 - /// 清理游戏上下文并创建架构实例 + /// 测试设置方法,在每个测试开始前执行 + /// 清理游戏上下文并创建架构实例 /// [SetUp] public void SetUp() @@ -30,8 +30,8 @@ public abstract class ArchitectureTestsBase where TArchitecture : } /// - /// 测试清理方法,在每个测试结束后执行 - /// 销毁架构实例并清理游戏上下文 + /// 测试清理方法,在每个测试结束后执行 + /// 销毁架构实例并清理游戏上下文 /// [TearDown] public void TearDown() @@ -48,8 +48,8 @@ public abstract class ArchitectureTestsBase where TArchitecture : } /// - /// 验证架构初始化失败的断言方法 - /// 检查当前架构阶段是否为初始化失败状态 + /// 验证架构初始化失败的断言方法 + /// 检查当前架构阶段是否为初始化失败状态 /// protected void AssertInitializationFailed() { diff --git a/GFramework.Core.Tests/tests/AsyncArchitectureTests.cs b/GFramework.Core.Tests/tests/AsyncArchitectureTests.cs index 3dda32e..a29c190 100644 --- a/GFramework.Core.Tests/tests/AsyncArchitectureTests.cs +++ b/GFramework.Core.Tests/tests/AsyncArchitectureTests.cs @@ -8,23 +8,26 @@ using NUnit.Framework.Legacy; namespace GFramework.Core.Tests.tests; /// -/// 异步架构测试类,用于测试异步架构的相关功能 +/// 异步架构测试类,用于测试异步架构的相关功能 /// /// -/// 该测试类使用非并行执行模式,确保测试的隔离性 +/// 该测试类使用非并行执行模式,确保测试的隔离性 /// [TestFixture] [NonParallelizable] public class AsyncArchitectureTests : ArchitectureTestsBase { /// - /// 创建异步测试架构实例 + /// 创建异步测试架构实例 /// /// AsyncTestArchitecture实例 - protected override AsyncTestArchitecture CreateArchitecture() => new(); + protected override AsyncTestArchitecture CreateArchitecture() + { + return new AsyncTestArchitecture(); + } /// - /// 测试架构是否正确初始化所有组件 + /// 测试架构是否正确初始化所有组件 /// /// 异步任务 [Test] @@ -45,7 +48,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试架构是否按正确顺序进入各个阶段 + /// 测试架构是否按正确顺序进入各个阶段 /// /// 异步任务 [Test] @@ -68,7 +71,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试在就绪状态后注册模型是否抛出异常 + /// 测试在就绪状态后注册模型是否抛出异常 /// /// 异步任务 [Test] @@ -81,7 +84,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试当模型初始化失败时架构是否停止初始化 + /// 测试当模型初始化失败时架构是否停止初始化 /// /// 异步任务 [Test] @@ -98,7 +101,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试架构销毁是否正确销毁所有系统 + /// 测试架构销毁是否正确销毁所有系统 /// /// 异步任务 [Test] @@ -113,7 +116,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试InitializeAsync方法是否不会阻塞 + /// 测试InitializeAsync方法是否不会阻塞 /// /// 异步任务 [Test] @@ -126,7 +129,7 @@ public class AsyncArchitectureTests : ArchitectureTestsBase - /// 测试InitializeAsync方法是否正确处理异常 + /// 测试InitializeAsync方法是否正确处理异常 /// /// 异步任务 [Test] diff --git a/GFramework.Core.Tests/tests/SyncArchitectureTests.cs b/GFramework.Core.Tests/tests/SyncArchitectureTests.cs index 594c6e5..67686fe 100644 --- a/GFramework.Core.Tests/tests/SyncArchitectureTests.cs +++ b/GFramework.Core.Tests/tests/SyncArchitectureTests.cs @@ -9,17 +9,20 @@ using NUnit.Framework.Legacy; namespace GFramework.Core.Tests.tests; /// -/// 同步架构测试类,用于测试同步架构的初始化、生命周期和组件注册等功能 +/// 同步架构测试类,用于测试同步架构的初始化、生命周期和组件注册等功能 /// [TestFixture] [NonParallelizable] public class SyncArchitectureTests : ArchitectureTestsBase { - protected override SyncTestArchitecture CreateArchitecture() => new(); + protected override SyncTestArchitecture CreateArchitecture() + { + return new SyncTestArchitecture(); + } /// - /// 测试架构是否正确初始化所有组件 - /// 验证初始化调用、运行时状态、架构阶段和模型系统注册 + /// 测试架构是否正确初始化所有组件 + /// 验证初始化调用、运行时状态、架构阶段和模型系统注册 /// [Test] public void Architecture_Should_Initialize_All_Components_Correctly() @@ -46,7 +49,7 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试架构是否按类型正确注册上下文 + /// 测试架构是否按类型正确注册上下文 /// [Test] public void Architecture_Should_Register_Context_By_Type() @@ -59,8 +62,8 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试架构是否按正确顺序进入各个阶段 - /// 验证架构初始化过程中各阶段的执行顺序 + /// 测试架构是否按正确顺序进入各个阶段 + /// 验证架构初始化过程中各阶段的执行顺序 /// [Test] public void Architecture_Should_Enter_Phases_In_Correct_Order() @@ -83,7 +86,7 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试在架构就绪后注册系统是否抛出异常(当不允许时) + /// 测试在架构就绪后注册系统是否抛出异常(当不允许时) /// [Test] public void RegisterSystem_AfterReady_Should_Throw_When_NotAllowed() @@ -94,7 +97,7 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试在架构就绪后注册模型是否抛出异常(当不允许时) + /// 测试在架构就绪后注册模型是否抛出异常(当不允许时) /// [Test] public void RegisterModel_AfterReady_Should_Throw_When_NotAllowed() @@ -105,7 +108,7 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试架构销毁功能,验证销毁后系统被正确销毁且架构进入销毁阶段 + /// 测试架构销毁功能,验证销毁后系统被正确销毁且架构进入销毁阶段 /// [Test] public void Architecture_Destroy_Should_Destroy_All_Systems_And_Enter_Destroyed() @@ -121,7 +124,7 @@ public class SyncArchitectureTests : ArchitectureTestsBase } /// - /// 测试当模型初始化失败时架构是否停止初始化 + /// 测试当模型初始化失败时架构是否停止初始化 /// [Test] public void Architecture_Should_Stop_Initialization_When_Model_Init_Fails() diff --git a/GFramework.Core/architecture/Architecture.cs b/GFramework.Core/architecture/Architecture.cs index 85a57ed..9330462 100644 --- a/GFramework.Core/architecture/Architecture.cs +++ b/GFramework.Core/architecture/Architecture.cs @@ -29,18 +29,18 @@ public abstract class Architecture( : IArchitecture { /// - /// 获取架构配置对象 + /// 获取架构配置对象 /// /// - /// 返回一个IArchitectureConfiguration接口的实例,默认为DefaultArchitectureConfiguration类型 + /// 返回一个IArchitectureConfiguration接口的实例,默认为DefaultArchitectureConfiguration类型 /// private IArchitectureConfiguration Configuration { get; } = configuration ?? new ArchitectureConfiguration(); /// - /// 获取环境配置对象 + /// 获取环境配置对象 /// /// - /// 返回一个IEnvironment接口的实例,默认为DefaultEnvironment类型 + /// 返回一个IEnvironment接口的实例,默认为DefaultEnvironment类型 /// private IEnvironment Environment { get; } = environment ?? new DefaultEnvironment(); @@ -243,13 +243,13 @@ public abstract class Architecture( #region Component Registration /// - /// 同步初始化方法,阻塞当前线程直到初始化完成 + /// 同步初始化方法,阻塞当前线程直到初始化完成 /// public void Initialize() { try { - InitializeInternalAsync(asyncMode: false).GetAwaiter().GetResult(); + InitializeInternalAsync(false).GetAwaiter().GetResult(); } catch (Exception e) { @@ -261,14 +261,14 @@ public abstract class Architecture( } /// - /// 异步初始化方法,返回Task以便调用者可以等待初始化完成 + /// 异步初始化方法,返回Task以便调用者可以等待初始化完成 /// /// 表示异步初始化操作的Task public async Task InitializeAsync() { try { - await InitializeInternalAsync(asyncMode: true); + await InitializeInternalAsync(true); } catch (Exception e) { @@ -280,7 +280,7 @@ public abstract class Architecture( } /// - /// 异步初始化组件 + /// 异步初始化组件 /// /// 要初始化的组件对象 /// 是否启用异步模式 @@ -289,9 +289,7 @@ public abstract class Architecture( { // 根据组件类型和异步模式选择相应的初始化方法 if (asyncMode && component is IAsyncInitializable asyncInit) - { await asyncInit.InitializeAsync(); - } else switch (component) { @@ -305,7 +303,7 @@ public abstract class Architecture( } /// - /// 异步初始化架构内部组件,包括上下文、模型和系统的初始化 + /// 异步初始化架构内部组件,包括上下文、模型和系统的初始化 /// /// 是否启用异步模式进行组件初始化 /// 异步任务,表示初始化操作的完成 diff --git a/GFramework.Core/architecture/ArchitectureConfiguration.cs b/GFramework.Core/architecture/ArchitectureConfiguration.cs index b699383..f431296 100644 --- a/GFramework.Core/architecture/ArchitectureConfiguration.cs +++ b/GFramework.Core/architecture/ArchitectureConfiguration.cs @@ -17,7 +17,7 @@ public sealed class ArchitectureConfiguration : IArchitectureConfiguration /// public LoggerProperties LoggerProperties { get; set; } = new() { - LoggerFactoryProvider = new ConsoleLoggerFactoryProvider() + LoggerFactoryProvider = new ConsoleLoggerFactoryProvider { MinLevel = LogLevel.Info } diff --git a/GFramework.Core/architecture/ArchitectureConstants.cs b/GFramework.Core/architecture/ArchitectureConstants.cs index a0bd243..e187ee4 100644 --- a/GFramework.Core/architecture/ArchitectureConstants.cs +++ b/GFramework.Core/architecture/ArchitectureConstants.cs @@ -4,15 +4,15 @@ using GFramework.Core.Abstractions.enums; namespace GFramework.Core.architecture; /// -/// 架构常量类,定义了架构阶段转换规则 +/// 架构常量类,定义了架构阶段转换规则 /// public static class ArchitectureConstants { /// - /// 定义架构阶段之间的有效转换关系 + /// 定义架构阶段之间的有效转换关系 /// /// - /// 键为当前架构阶段,值为从该阶段可以转换到的下一阶段数组 + /// 键为当前架构阶段,值为从该阶段可以转换到的下一阶段数组 /// public static readonly ImmutableDictionary PhaseTransitions = new Dictionary diff --git a/GFramework.Core/architecture/ArchitectureContext.cs b/GFramework.Core/architecture/ArchitectureContext.cs index 7e01224..d5dfbf2 100644 --- a/GFramework.Core/architecture/ArchitectureContext.cs +++ b/GFramework.Core/architecture/ArchitectureContext.cs @@ -150,7 +150,7 @@ public class ArchitectureContext( } /// - /// 获取当前环境对象 + /// 获取当前环境对象 /// /// 环境对象实例 public IEnvironment GetEnvironment() diff --git a/GFramework.Core/architecture/ArchitectureServices.cs b/GFramework.Core/architecture/ArchitectureServices.cs index 6119004..3ee3406 100644 --- a/GFramework.Core/architecture/ArchitectureServices.cs +++ b/GFramework.Core/architecture/ArchitectureServices.cs @@ -11,34 +11,34 @@ using GFramework.Core.query; namespace GFramework.Core.architecture; /// -/// 架构服务类,提供依赖注入容器、事件系统、命令总线和查询总线等核心服务 +/// 架构服务类,提供依赖注入容器、事件系统、命令总线和查询总线等核心服务 /// public class ArchitectureServices : IArchitectureServices { private IArchitectureContext _context = null!; /// - /// 获取依赖注入容器 + /// 获取依赖注入容器 /// public IIocContainer Container { get; } = new IocContainer(); /// - /// 获取类型事件系统 + /// 获取类型事件系统 /// public ITypeEventSystem TypeEventSystem { get; } = new TypeEventSystem(); /// - /// 获取命令总线 + /// 获取命令总线 /// public ICommandBus CommandBus { get; } = new CommandBus(); /// - /// 获取查询总线 + /// 获取查询总线 /// public IQueryBus QueryBus { get; } = new QueryBus(); /// - /// 设置架构上下文 + /// 设置架构上下文 /// /// 架构上下文对象 public void SetContext(IArchitectureContext context) @@ -48,7 +48,7 @@ public class ArchitectureServices : IArchitectureServices } /// - /// 获取架构上下文 + /// 获取架构上下文 /// /// 架构上下文对象 public IArchitectureContext GetContext() diff --git a/GFramework.Core/architecture/GameContext.cs b/GFramework.Core/architecture/GameContext.cs index a73b653..f31460b 100644 --- a/GFramework.Core/architecture/GameContext.cs +++ b/GFramework.Core/architecture/GameContext.cs @@ -4,7 +4,7 @@ using GFramework.Core.Abstractions.architecture; namespace GFramework.Core.architecture; /// -/// 游戏上下文管理类,用于管理当前的架构上下文实例 +/// 游戏上下文管理类,用于管理当前的架构上下文实例 /// public static class GameContext { @@ -13,13 +13,13 @@ public static class GameContext /// - /// 获取所有已注册的架构上下文的只读字典 + /// 获取所有已注册的架构上下文的只读字典 /// public static IReadOnlyDictionary ArchitectureReadOnlyDictionary => ArchitectureDictionary; /// - /// 绑定指定类型的架构上下文到管理器中 + /// 绑定指定类型的架构上下文到管理器中 /// /// 架构类型 /// 架构上下文实例 @@ -27,14 +27,12 @@ public static class GameContext public static void Bind(Type architectureType, IArchitectureContext context) { if (!ArchitectureDictionary.TryAdd(architectureType, context)) - { throw new InvalidOperationException( $"Architecture context for '{architectureType.Name}' already exists"); - } } /// - /// 获取字典中的第一个架构上下文 + /// 获取字典中的第一个架构上下文 /// /// 返回字典中的第一个架构上下文实例 /// 当字典为空时抛出 @@ -44,7 +42,7 @@ public static class GameContext } /// - /// 根据类型获取对应的架构上下文 + /// 根据类型获取对应的架构上下文 /// /// 要查找的架构类型 /// 返回指定类型的架构上下文实例 @@ -60,7 +58,7 @@ public static class GameContext /// - /// 获取指定类型的架构上下文实例 + /// 获取指定类型的架构上下文实例 /// /// 架构上下文类型,必须实现IArchitectureContext接口 /// 指定类型的架构上下文实例 @@ -75,7 +73,7 @@ public static class GameContext } /// - /// 尝试获取指定类型的架构上下文实例 + /// 尝试获取指定类型的架构上下文实例 /// /// 架构上下文类型,必须实现IArchitectureContext接口 /// 输出参数,如果找到则返回对应的架构上下文实例,否则返回null @@ -94,7 +92,7 @@ public static class GameContext } /// - /// 移除指定类型的架构上下文绑定 + /// 移除指定类型的架构上下文绑定 /// /// 要移除的架构类型 public static void Unbind(Type architectureType) @@ -104,7 +102,7 @@ public static class GameContext /// - /// 清空所有架构上下文绑定 + /// 清空所有架构上下文绑定 /// public static void Clear() { diff --git a/GFramework.Core/command/CommandBus.cs b/GFramework.Core/command/CommandBus.cs index 60faa7b..b0edb12 100644 --- a/GFramework.Core/command/CommandBus.cs +++ b/GFramework.Core/command/CommandBus.cs @@ -3,12 +3,12 @@ namespace GFramework.Core.command; /// -/// 命令总线实现类,用于发送和执行命令 +/// 命令总线实现类,用于发送和执行命令 /// public sealed class CommandBus : ICommandBus { /// - /// 发送并执行无返回值的命令 + /// 发送并执行无返回值的命令 /// /// 要执行的命令对象,不能为空 /// 当command参数为null时抛出 @@ -20,7 +20,7 @@ public sealed class CommandBus : ICommandBus } /// - /// 发送并执行有返回值的命令 + /// 发送并执行有返回值的命令 /// /// 命令执行结果的类型 /// 要执行的命令对象,不能为空 diff --git a/GFramework.Core/environment/DefaultEnvironment.cs b/GFramework.Core/environment/DefaultEnvironment.cs index 39644c7..5fa0d9a 100644 --- a/GFramework.Core/environment/DefaultEnvironment.cs +++ b/GFramework.Core/environment/DefaultEnvironment.cs @@ -1,17 +1,17 @@ namespace GFramework.Core.environment; /// -/// 默认环境实现类,继承自EnvironmentBase +/// 默认环境实现类,继承自EnvironmentBase /// public class DefaultEnvironment : EnvironmentBase { /// - /// 获取环境名称 + /// 获取环境名称 /// public override string Name { get; } = "Default"; /// - /// 初始化环境 + /// 初始化环境 /// public override void Initialize() { diff --git a/GFramework.Core/environment/EnvironmentBase.cs b/GFramework.Core/environment/EnvironmentBase.cs index 292033d..826037e 100644 --- a/GFramework.Core/environment/EnvironmentBase.cs +++ b/GFramework.Core/environment/EnvironmentBase.cs @@ -4,22 +4,22 @@ using GFramework.Core.rule; namespace GFramework.Core.environment; /// -/// 环境基础抽象类,实现了IEnvironment接口,提供环境值的存储和获取功能 +/// 环境基础抽象类,实现了IEnvironment接口,提供环境值的存储和获取功能 /// public abstract class EnvironmentBase : ContextAwareBase, IEnvironment { /// - /// 存储环境值的字典,键为字符串,值为对象类型 + /// 存储环境值的字典,键为字符串,值为对象类型 /// protected readonly Dictionary Values = new(); /// - /// 获取环境名称的抽象属性 + /// 获取环境名称的抽象属性 /// public abstract string Name { get; } /// - /// 根据键获取指定类型的值 + /// 根据键获取指定类型的值 /// /// 要获取的值的类型,必须为引用类型 /// 用于查找值的键 @@ -30,7 +30,7 @@ public abstract class EnvironmentBase : ContextAwareBase, IEnvironment } /// - /// 尝试根据键获取指定类型的值 + /// 尝试根据键获取指定类型的值 /// /// 要获取的值的类型,必须为引用类型 /// 用于查找值的键 @@ -49,7 +49,7 @@ public abstract class EnvironmentBase : ContextAwareBase, IEnvironment } /// - /// 根据键获取必需的指定类型值,如果找不到则抛出异常 + /// 根据键获取必需的指定类型值,如果找不到则抛出异常 /// /// 要获取的值的类型,必须为引用类型 /// 用于查找值的键 @@ -72,7 +72,7 @@ public abstract class EnvironmentBase : ContextAwareBase, IEnvironment public abstract void Initialize(); /// - /// 注册键值对到环境值字典中 + /// 注册键值对到环境值字典中 /// /// 要注册的键 /// 要注册的值 diff --git a/GFramework.Core/extensions/ContextAwareExtensions.cs b/GFramework.Core/extensions/ContextAwareExtensions.cs index 0b79530..916a41e 100644 --- a/GFramework.Core/extensions/ContextAwareExtensions.cs +++ b/GFramework.Core/extensions/ContextAwareExtensions.cs @@ -10,12 +10,12 @@ using GFramework.Core.Abstractions.utility; namespace GFramework.Core.extensions; /// -/// 提供对 IContextAware 接口的扩展方法 +/// 提供对 IContextAware 接口的扩展方法 /// public static class ContextAwareExtensions { /// - /// 获取架构上下文中的指定系统 + /// 获取架构上下文中的指定系统 /// /// 目标系统类型 /// 实现 IContextAware 接口的对象 @@ -29,7 +29,7 @@ public static class ContextAwareExtensions } /// - /// 获取架构上下文中的指定模型 + /// 获取架构上下文中的指定模型 /// /// 目标模型类型 /// 实现 IContextAware 接口的对象 @@ -43,7 +43,7 @@ public static class ContextAwareExtensions } /// - /// 获取架构上下文中的指定工具 + /// 获取架构上下文中的指定工具 /// /// 目标工具类型 /// 实现 IContextAware 接口的对象 @@ -57,7 +57,7 @@ public static class ContextAwareExtensions } /// - /// 发送一个查询请求 + /// 发送一个查询请求 /// /// 查询结果类型 /// 实现 IContextAware 接口的对象 @@ -74,7 +74,7 @@ public static class ContextAwareExtensions } /// - /// 发送一个无返回结果的命令 + /// 发送一个无返回结果的命令 /// /// 实现 IContextAware 接口的对象 /// 要发送的命令 @@ -89,7 +89,7 @@ public static class ContextAwareExtensions } /// - /// 发送一个带返回值的命令 + /// 发送一个带返回值的命令 /// /// 命令执行结果类型 /// 实现 IContextAware 接口的对象 @@ -106,7 +106,7 @@ public static class ContextAwareExtensions } /// - /// 发送一个事件 + /// 发送一个事件 /// /// 事件类型 /// 实现 IContextAware 接口的对象 @@ -119,7 +119,7 @@ public static class ContextAwareExtensions } /// - /// 发送一个具体的事件实例 + /// 发送一个具体的事件实例 /// /// 事件类型 /// 实现 IContextAware 接口的对象 @@ -135,7 +135,7 @@ public static class ContextAwareExtensions } /// - /// 注册事件处理器 + /// 注册事件处理器 /// /// 事件类型 /// 实现 IContextAware 接口的对象 @@ -151,7 +151,7 @@ public static class ContextAwareExtensions } /// - /// 取消对某类型事件的监听 + /// 取消对某类型事件的监听 /// /// 事件类型 /// 实现 IContextAware 接口的对象 @@ -168,7 +168,7 @@ public static class ContextAwareExtensions /// - /// 获取指定类型的环境对象 + /// 获取指定类型的环境对象 /// /// 要获取的环境对象类型 /// 上下文感知对象 @@ -182,7 +182,7 @@ public static class ContextAwareExtensions } /// - /// 获取环境对象 + /// 获取环境对象 /// /// 上下文感知对象 /// 环境对象 diff --git a/GFramework.Core/extensions/ObjectExtensions.cs b/GFramework.Core/extensions/ObjectExtensions.cs index d1783a5..be3f672 100644 --- a/GFramework.Core/extensions/ObjectExtensions.cs +++ b/GFramework.Core/extensions/ObjectExtensions.cs @@ -1,20 +1,20 @@ namespace GFramework.Core.extensions; /// -/// 提供基于运行时类型判断的对象扩展方法, -/// 用于简化类型分支、链式调用和架构分派逻辑。 +/// 提供基于运行时类型判断的对象扩展方法, +/// 用于简化类型分支、链式调用和架构分派逻辑。 /// public static class ObjectExtensions { /// - /// 当对象是指定类型 时,执行给定的操作。 + /// 当对象是指定类型 时,执行给定的操作。 /// /// 目标类型 /// 源对象 /// 当对象类型匹配时执行的操作 /// 如果类型匹配并执行了操作则返回 true,否则返回 false /// - /// + /// /// object obj = new MyRule(); /// /// bool executed = obj.IfType<MyRule>(rule => @@ -31,18 +31,18 @@ public static class ObjectExtensions } /// - /// 当对象是指定类型 时, - /// 使用给定函数计算并返回结果;否则返回默认值。 + /// 当对象是指定类型 时, + /// 使用给定函数计算并返回结果;否则返回默认值。 /// /// 目标类型 /// 返回结果类型 /// 源对象 /// 当类型匹配时执行的函数 /// - /// 类型匹配时返回函数计算结果,否则返回 default + /// 类型匹配时返回函数计算结果,否则返回 default /// /// - /// + /// /// object obj = new MyRule { Name = "TestRule" }; /// /// string? name = obj.IfType<MyRule, string>(r => r.Name); @@ -58,15 +58,15 @@ public static class ObjectExtensions } /// - /// 根据对象是否为指定类型 , - /// 分别执行匹配或不匹配的操作。 + /// 根据对象是否为指定类型 , + /// 分别执行匹配或不匹配的操作。 /// /// 目标类型 /// 源对象 /// 当对象类型匹配时执行的操作 /// 当对象类型不匹配时执行的操作 /// - /// + /// /// obj.IfType<IRule>( /// rule => rule.Execute(), /// other => Logger.Warn($"Unsupported type: {other.GetType()}") @@ -87,8 +87,8 @@ public static class ObjectExtensions } /// - /// 当对象是指定类型 且满足给定条件时, - /// 执行指定操作。 + /// 当对象是指定类型 且满足给定条件时, + /// 执行指定操作。 /// /// 目标类型 /// 源对象 @@ -96,7 +96,7 @@ public static class ObjectExtensions /// 当条件满足时执行的操作 /// 如果类型和条件均匹配并执行了操作则返回 true,否则返回 false /// - /// + /// /// obj.IfType<MyRule>( /// r => r.Enabled, /// r => r.Execute() @@ -118,32 +118,34 @@ public static class ObjectExtensions } /// - /// 尝试将对象转换为指定的引用类型 。 + /// 尝试将对象转换为指定的引用类型 。 /// /// 目标引用类型 /// 源对象 /// - /// 如果类型匹配则返回转换后的对象,否则返回 null + /// 如果类型匹配则返回转换后的对象,否则返回 null /// /// - /// + /// /// obj.As<MyRule>() /// ?.Execute(); /// /// public static T? As(this object obj) where T : class - => obj as T; + { + return obj as T; + } /// - /// 对对象执行指定操作后返回对象本身, - /// 用于构建流式(链式)调用。 + /// 对对象执行指定操作后返回对象本身, + /// 用于构建流式(链式)调用。 /// /// 对象类型 /// 源对象 /// 要执行的操作 /// 原对象 /// - /// + /// /// obj.As<MyRule>() /// ?.Do(r => r.Initialize()) /// ?.Do(r => r.Execute()); @@ -156,15 +158,15 @@ public static class ObjectExtensions } /// - /// 根据对象的运行时类型,依次匹配并执行对应的处理逻辑, - /// 只会执行第一个匹配成功的处理器。 + /// 根据对象的运行时类型,依次匹配并执行对应的处理逻辑, + /// 只会执行第一个匹配成功的处理器。 /// /// 源对象 /// - /// 类型与处理操作的元组数组,用于定义类型分派规则 + /// 类型与处理操作的元组数组,用于定义类型分派规则 /// /// - /// + /// /// obj.SwitchType( /// (typeof(IRule), o => HandleRule((IRule)o)), /// (typeof(ISystem), o => HandleSystem((ISystem)o)) diff --git a/GFramework.Core/ioc/IocContainer.cs b/GFramework.Core/ioc/IocContainer.cs index 9930a49..aecfb4e 100644 --- a/GFramework.Core/ioc/IocContainer.cs +++ b/GFramework.Core/ioc/IocContainer.cs @@ -114,10 +114,7 @@ public class IocContainer : ContextAwareBase, IIocContainer RegisterInternal(concreteType, instance); // 注册所有接口类型 - foreach (var itf in interfaces) - { - RegisterInternal(itf, instance); - } + foreach (var itf in interfaces) RegisterInternal(itf, instance); } finally { diff --git a/GFramework.Core/logging/ConsoleLoggerFactoryProvider.cs b/GFramework.Core/logging/ConsoleLoggerFactoryProvider.cs index c73bbc6..9751f55 100644 --- a/GFramework.Core/logging/ConsoleLoggerFactoryProvider.cs +++ b/GFramework.Core/logging/ConsoleLoggerFactoryProvider.cs @@ -3,20 +3,22 @@ namespace GFramework.Core.logging; /// -/// 控制台日志记录器工厂提供程序,用于创建控制台日志记录器实例 +/// 控制台日志记录器工厂提供程序,用于创建控制台日志记录器实例 /// public sealed class ConsoleLoggerFactoryProvider : ILoggerFactoryProvider { /// - /// 获取或设置日志记录器的最小日志级别,低于此级别的日志将被忽略 + /// 获取或设置日志记录器的最小日志级别,低于此级别的日志将被忽略 /// public LogLevel MinLevel { get; set; } = LogLevel.Info; /// - /// 创建一个日志记录器实例 + /// 创建一个日志记录器实例 /// /// 日志记录器的名称,用于标识特定的日志源 /// 配置了指定名称和最小日志级别的ILogger实例 public ILogger CreateLogger(string name) - => new ConsoleLoggerFactory().GetLogger(name, MinLevel); + { + return new ConsoleLoggerFactory().GetLogger(name, MinLevel); + } } \ No newline at end of file diff --git a/GFramework.Core/logging/LoggerFactoryResolver.cs b/GFramework.Core/logging/LoggerFactoryResolver.cs index 4dd5f7a..d7fd90e 100644 --- a/GFramework.Core/logging/LoggerFactoryResolver.cs +++ b/GFramework.Core/logging/LoggerFactoryResolver.cs @@ -3,24 +3,24 @@ namespace GFramework.Core.logging; /// -/// 日志工厂提供程序解析器,用于管理和提供日志工厂提供程序实例 +/// 日志工厂提供程序解析器,用于管理和提供日志工厂提供程序实例 /// public static class LoggerFactoryResolver { /// - /// 获取或设置当前的日志工厂提供程序 + /// 获取或设置当前的日志工厂提供程序 /// /// - /// 日志工厂提供程序实例,默认为控制台日志工厂提供程序 + /// 日志工厂提供程序实例,默认为控制台日志工厂提供程序 /// public static ILoggerFactoryProvider Provider { get; set; } = new ConsoleLoggerFactoryProvider(); /// - /// 获取或设置日志记录的最小级别 + /// 获取或设置日志记录的最小级别 /// /// - /// 日志级别枚举值,默认为Info级别 + /// 日志级别枚举值,默认为Info级别 /// public static LogLevel MinLevel { get; set; } = LogLevel.Info; } \ No newline at end of file diff --git a/GFramework.Core/property/BindablePropertyUnRegister.cs b/GFramework.Core/property/BindablePropertyUnRegister.cs index 2cbd06e..6ef5eef 100644 --- a/GFramework.Core/property/BindablePropertyUnRegister.cs +++ b/GFramework.Core/property/BindablePropertyUnRegister.cs @@ -28,10 +28,8 @@ public class BindablePropertyUnRegister(BindableProperty bindableProperty, { // 检查两个引用都不为null时才执行注销操作 if (BindableProperty != null && OnValueChanged != null) - { // 调用可绑定属性的注销方法,传入值变化回调函数 BindableProperty.UnRegister(OnValueChanged); - } // 清理属性引用 BindableProperty = null; diff --git a/GFramework.Core/query/QueryBus.cs b/GFramework.Core/query/QueryBus.cs index 34cfa58..ce1f698 100644 --- a/GFramework.Core/query/QueryBus.cs +++ b/GFramework.Core/query/QueryBus.cs @@ -3,12 +3,12 @@ namespace GFramework.Core.query; /// -/// 查询总线实现,负责执行查询并返回结果 +/// 查询总线实现,负责执行查询并返回结果 /// public sealed class QueryBus : IQueryBus { /// - /// 执行指定的查询并返回结果 + /// 执行指定的查询并返回结果 /// /// 查询结果的类型 /// 要执行的查询对象 diff --git a/GFramework.Game.Abstractions/assets/AssetCatalog.cs b/GFramework.Game.Abstractions/assets/AssetCatalog.cs index 9d89ee5..84d6349 100644 --- a/GFramework.Game.Abstractions/assets/AssetCatalog.cs +++ b/GFramework.Game.Abstractions/assets/AssetCatalog.cs @@ -1,46 +1,45 @@ -namespace GFramework.Game.Abstractions.assets +namespace GFramework.Game.Abstractions.assets; + +/// +/// 资源目录类,用于定义和管理游戏中的场景和资源标识符 +/// +public static class AssetCatalog { /// - /// 资源目录类,用于定义和管理游戏中的场景和资源标识符 + /// 资源标识符接口,定义了资源路径的访问接口 /// - public static class AssetCatalog + public interface IAssetId { /// - /// 资源标识符接口,定义了资源路径的访问接口 + /// 获取资源的路径 /// - public interface IAssetId - { - /// - /// 获取资源的路径 - /// - string Path { get; } - } - - /// - /// 资源目录映射结构体,用于存储资源目录的键值对映射关系 - /// - /// 资源目录的键 - /// 资源标识符 - public readonly record struct AssetCatalogMapping(string Key, IAssetId Id); - - - /// - /// 场景页面资源标识符结构体,用于标识场景页面资源 - /// - /// 场景页面资源路径 - public readonly record struct ScenePageId(string Path) : IAssetId; - - - /// - /// 场景单元资源标识符结构体,用于标识场景单元资源 - /// - /// 场景单元资源路径 - public readonly record struct SceneUnitId(string Path) : IAssetId; - - /// - /// 通用资源标识符结构体,实现IAssetId接口 - /// - /// 资源路径 - public readonly record struct AssetId(string Path) : IAssetId; + string Path { get; } } + + /// + /// 资源目录映射结构体,用于存储资源目录的键值对映射关系 + /// + /// 资源目录的键 + /// 资源标识符 + public readonly record struct AssetCatalogMapping(string Key, IAssetId Id); + + + /// + /// 场景页面资源标识符结构体,用于标识场景页面资源 + /// + /// 场景页面资源路径 + public readonly record struct ScenePageId(string Path) : IAssetId; + + + /// + /// 场景单元资源标识符结构体,用于标识场景单元资源 + /// + /// 场景单元资源路径 + public readonly record struct SceneUnitId(string Path) : IAssetId; + + /// + /// 通用资源标识符结构体,实现IAssetId接口 + /// + /// 资源路径 + public readonly record struct AssetId(string Path) : IAssetId; } \ No newline at end of file diff --git a/GFramework.Game.Abstractions/internals/IsExternalInit.cs b/GFramework.Game.Abstractions/internals/IsExternalInit.cs index 2d050dd..a3ddedd 100644 --- a/GFramework.Game.Abstractions/internals/IsExternalInit.cs +++ b/GFramework.Game.Abstractions/internals/IsExternalInit.cs @@ -3,10 +3,9 @@ // when targeting netstandard2.0 or older frameworks. #pragma warning disable S2094 // Remove this empty class -namespace System.Runtime.CompilerServices +namespace System.Runtime.CompilerServices; + +internal static class IsExternalInit { - internal static class IsExternalInit - { - } } #pragma warning restore S2094 \ No newline at end of file diff --git a/GFramework.Game/architecture/AbstractModule.cs b/GFramework.Game/architecture/AbstractModule.cs index f286dec..d4d2551 100644 --- a/GFramework.Game/architecture/AbstractModule.cs +++ b/GFramework.Game/architecture/AbstractModule.cs @@ -4,12 +4,12 @@ using GFramework.Core.Abstractions.enums; namespace GFramework.Game.architecture; /// -/// 抽象模块类,实现IArchitectureModule接口,为架构模块提供基础功能 +/// 抽象模块类,实现IArchitectureModule接口,为架构模块提供基础功能 /// public abstract class AbstractModule : IArchitectureModule { /// - /// 在指定架构阶段执行的操作 + /// 在指定架构阶段执行的操作 /// /// 架构阶段枚举值 /// 架构实例 @@ -18,7 +18,7 @@ public abstract class AbstractModule : IArchitectureModule } /// - /// 在架构阶段执行的操作 + /// 在架构阶段执行的操作 /// /// 架构阶段枚举值 public virtual void OnArchitecturePhase(ArchitecturePhase phase) @@ -26,7 +26,7 @@ public abstract class AbstractModule : IArchitectureModule } /// - /// 安装模块到架构中 + /// 安装模块到架构中 /// /// 要安装到的架构实例 public abstract void Install(IArchitecture architecture); diff --git a/GFramework.Godot.SourceGenerators.Abstractions/GodotModuleMarker.cs b/GFramework.Godot.SourceGenerators.Abstractions/GodotModuleMarker.cs index a56403b..cba33ef 100644 --- a/GFramework.Godot.SourceGenerators.Abstractions/GodotModuleMarker.cs +++ b/GFramework.Godot.SourceGenerators.Abstractions/GodotModuleMarker.cs @@ -1,6 +1,6 @@ namespace GFramework.Godot.SourceGenerators.Abstractions; /// -/// Godot 模块命名空间占位类型 +/// Godot 模块命名空间占位类型 /// internal sealed class GodotModuleMarker; \ No newline at end of file diff --git a/GFramework.Godot/architecture/AbstractArchitecture.cs b/GFramework.Godot/architecture/AbstractArchitecture.cs index fb43ecb..757f294 100644 --- a/GFramework.Godot/architecture/AbstractArchitecture.cs +++ b/GFramework.Godot/architecture/AbstractArchitecture.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using GFramework.Core.Abstractions.architecture; +using GFramework.Core.Abstractions.architecture; using GFramework.Core.Abstractions.environment; using GFramework.Core.architecture; using GFramework.Core.constants; diff --git a/GFramework.Godot/architecture/ArchitectureAnchor.cs b/GFramework.Godot/architecture/ArchitectureAnchor.cs index 2dbe047..2884184 100644 --- a/GFramework.Godot/architecture/ArchitectureAnchor.cs +++ b/GFramework.Godot/architecture/ArchitectureAnchor.cs @@ -1,5 +1,4 @@ -using System; -using Godot; +using Godot; namespace GFramework.Godot.architecture; diff --git a/GFramework.Godot/assets/AbstractResourceFactorySystem.cs b/GFramework.Godot/assets/AbstractResourceFactorySystem.cs index ad913c2..eabdcb0 100644 --- a/GFramework.Godot/assets/AbstractResourceFactorySystem.cs +++ b/GFramework.Godot/assets/AbstractResourceFactorySystem.cs @@ -1,4 +1,3 @@ -using System; using GFramework.Core.Abstractions.enums; using GFramework.Core.extensions; using GFramework.Core.system; diff --git a/GFramework.Godot/assets/IResourceLoadSystem.cs b/GFramework.Godot/assets/IResourceLoadSystem.cs index 8c08c4a..2a124a4 100644 --- a/GFramework.Godot/assets/IResourceLoadSystem.cs +++ b/GFramework.Godot/assets/IResourceLoadSystem.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using GFramework.Core.Abstractions.system; +using GFramework.Core.Abstractions.system; using GFramework.Game.Abstractions.assets; using Godot; diff --git a/GFramework.Godot/assets/ResourceLoadSystem.cs b/GFramework.Godot/assets/ResourceLoadSystem.cs index 39986be..d70318b 100644 --- a/GFramework.Godot/assets/ResourceLoadSystem.cs +++ b/GFramework.Godot/assets/ResourceLoadSystem.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using GFramework.Core.system; +using GFramework.Core.system; using GFramework.Game.Abstractions.assets; using Godot; diff --git a/GFramework.Godot/extensions/signal/SignalBuilder.cs b/GFramework.Godot/extensions/signal/SignalBuilder.cs index ce26841..e409e1a 100644 --- a/GFramework.Godot/extensions/signal/SignalBuilder.cs +++ b/GFramework.Godot/extensions/signal/SignalBuilder.cs @@ -3,7 +3,7 @@ namespace GFramework.Godot.extensions.signal; /// -/// 信号连接构建器,用于以流畅的方式连接Godot信号 +/// 信号连接构建器,用于以流畅的方式连接Godot信号 /// /// 要连接信号的目标节点 /// 要连接的信号名称 @@ -12,7 +12,7 @@ public sealed class SignalBuilder(GodotObject target, StringName signal) private GodotObject.ConnectFlags? _flags; /// - /// 设置连接标志 + /// 设置连接标志 /// /// 连接标志 /// 当前构建器实例 @@ -23,7 +23,7 @@ public sealed class SignalBuilder(GodotObject target, StringName signal) } /// - /// 连接信号到指定的可调用对象 + /// 连接信号到指定的可调用对象 /// /// 要连接的可调用对象 /// 连接标志 @@ -41,7 +41,7 @@ public sealed class SignalBuilder(GodotObject target, StringName signal) } /// - /// 连接信号到指定的可调用对象并立即调用 + /// 连接信号到指定的可调用对象并立即调用 /// /// 要连接的可调用对象 /// 连接标志 @@ -55,8 +55,11 @@ public sealed class SignalBuilder(GodotObject target, StringName signal) } /// - /// 显式结束,返回 Node + /// 显式结束,返回 Node /// /// 目标节点 - public GodotObject End() => target; + public GodotObject End() + { + return target; + } } \ No newline at end of file diff --git a/GFramework.Godot/extensions/signal/SignalFluentExtensions.cs b/GFramework.Godot/extensions/signal/SignalFluentExtensions.cs index 4311b95..6891c61 100644 --- a/GFramework.Godot/extensions/signal/SignalFluentExtensions.cs +++ b/GFramework.Godot/extensions/signal/SignalFluentExtensions.cs @@ -3,12 +3,12 @@ namespace GFramework.Godot.extensions.signal; /// -/// 为Godot Node节点提供信号相关的流畅API扩展方法 +/// 为Godot Node节点提供信号相关的流畅API扩展方法 /// public static class SignalFluentExtensions { /// - /// 为指定节点创建信号构建器 + /// 为指定节点创建信号构建器 /// /// 要创建信号构建器的Godot对象 /// 信号名称 @@ -16,5 +16,7 @@ public static class SignalFluentExtensions public static SignalBuilder Signal( this GodotObject @object, StringName signal) - => new(@object, signal); + { + return new SignalBuilder(@object, signal); + } } \ No newline at end of file diff --git a/GFramework.Godot/logging/GodotLogger.cs b/GFramework.Godot/logging/GodotLogger.cs index a7defe4..c9c2895 100644 --- a/GFramework.Godot/logging/GodotLogger.cs +++ b/GFramework.Godot/logging/GodotLogger.cs @@ -18,10 +18,7 @@ public sealed class GodotLogger( var logPrefix = $"[{timestamp}] {levelStr} [{Name()}]"; // 添加异常信息 - if (exception != null) - { - message += "\n" + exception; - } + if (exception != null) message += "\n" + exception; var logMessage = $"{logPrefix} {message}"; diff --git a/GFramework.Godot/logging/GodotLoggerFactoryProvider.cs b/GFramework.Godot/logging/GodotLoggerFactoryProvider.cs index 95c2932..cf9aa98 100644 --- a/GFramework.Godot/logging/GodotLoggerFactoryProvider.cs +++ b/GFramework.Godot/logging/GodotLoggerFactoryProvider.cs @@ -3,19 +3,22 @@ namespace GFramework.Godot.logging; /// -/// Godot日志工厂提供程序,用于创建Godot日志记录器实例 +/// Godot日志工厂提供程序,用于创建Godot日志记录器实例 /// public sealed class GodotLoggerFactoryProvider : ILoggerFactoryProvider { /// - /// 获取或设置最小日志级别 + /// 获取或设置最小日志级别 /// public LogLevel MinLevel { get; set; } /// - /// 创建指定名称的日志记录器实例 + /// 创建指定名称的日志记录器实例 /// /// 日志记录器的名称 /// 返回配置了最小日志级别的Godot日志记录器实例 - public ILogger CreateLogger(string name) => new GodotLoggerFactory().GetLogger(name, MinLevel); + public ILogger CreateLogger(string name) + { + return new GodotLoggerFactory().GetLogger(name, MinLevel); + } } \ No newline at end of file diff --git a/GFramework.Godot/system/AbstractAudioManagerSystem.cs b/GFramework.Godot/system/AbstractAudioManagerSystem.cs index f7d2a04..dadf886 100644 --- a/GFramework.Godot/system/AbstractAudioManagerSystem.cs +++ b/GFramework.Godot/system/AbstractAudioManagerSystem.cs @@ -1,4 +1,3 @@ -using System.Collections.Generic; using GFramework.Core.extensions; using GFramework.Core.system; using GFramework.Game.Abstractions.assets; diff --git a/GFramework.SourceGenerators.Common/constants/PathContests.cs b/GFramework.SourceGenerators.Common/constants/PathContests.cs index ab96d81..9a0b6fe 100644 --- a/GFramework.SourceGenerators.Common/constants/PathContests.cs +++ b/GFramework.SourceGenerators.Common/constants/PathContests.cs @@ -1,42 +1,42 @@ namespace GFramework.SourceGenerators.Common.constants; /// -/// 定义GFramework项目中使用的路径常量 +/// 定义GFramework项目中使用的路径常量 /// public static class PathContests { /// - /// GFramework基础命名空间 + /// GFramework基础命名空间 /// public const string BaseNamespace = "GFramework"; /// - /// GFramework核心模块命名空间 + /// GFramework核心模块命名空间 /// public const string CoreNamespace = $"{BaseNamespace}.Core"; /// - /// GFramework Godot模块命名空间 + /// GFramework Godot模块命名空间 /// public const string GodotNamespace = $"{BaseNamespace}.Godot"; /// - /// GFramework游戏模块命名空间 + /// GFramework游戏模块命名空间 /// public const string GameNamespace = $"{BaseNamespace}.Game"; /// - /// GFramework源代码生成器抽象层命名空间 + /// GFramework源代码生成器抽象层命名空间 /// public const string SourceGeneratorsAbstractionsPath = $"{BaseNamespace}.SourceGenerators.Abstractions"; /// - /// GFramework Godot源代码生成器抽象层命名空间 + /// GFramework Godot源代码生成器抽象层命名空间 /// public const string GodotSourceGeneratorsAbstractionsPath = $"{GodotNamespace}.SourceGenerators.Abstractions"; /// - /// GFramework核心抽象层命名空间 + /// GFramework核心抽象层命名空间 /// public const string CoreAbstractionsNamespace = $"{CoreNamespace}.Abstractions"; } \ No newline at end of file diff --git a/GFramework.SourceGenerators.Common/diagnostics/CommonDiagnostics.cs b/GFramework.SourceGenerators.Common/diagnostics/CommonDiagnostics.cs index fad409b..10c84bc 100644 --- a/GFramework.SourceGenerators.Common/diagnostics/CommonDiagnostics.cs +++ b/GFramework.SourceGenerators.Common/diagnostics/CommonDiagnostics.cs @@ -24,7 +24,7 @@ public static class CommonDiagnostics "Class '{0}' must be declared partial for code generation", "GFramework.Common", DiagnosticSeverity.Error, - isEnabledByDefault: true + true ); /// @@ -44,7 +44,7 @@ public static class CommonDiagnostics "{0}", "GFramework.Trace", DiagnosticSeverity.Info, - isEnabledByDefault: true + true ); /// diff --git a/GFramework.SourceGenerators.Common/generator/AttributeClassGeneratorBase.cs b/GFramework.SourceGenerators.Common/generator/AttributeClassGeneratorBase.cs index bc85920..762c3b5 100644 --- a/GFramework.SourceGenerators.Common/generator/AttributeClassGeneratorBase.cs +++ b/GFramework.SourceGenerators.Common/generator/AttributeClassGeneratorBase.cs @@ -128,7 +128,9 @@ public abstract class AttributeClassGeneratorBase : IIncrementalGenerator ClassDeclarationSyntax syntax, INamedTypeSymbol symbol, AttributeData attr) - => true; + { + return true; + } /// /// 生成源代码 @@ -150,7 +152,9 @@ public abstract class AttributeClassGeneratorBase : IIncrementalGenerator /// 命名类型符号 /// 生成文件的提示名称 protected virtual string GetHintName(INamedTypeSymbol symbol) - => $"{symbol.Name}.g.cs"; + { + return $"{symbol.Name}.g.cs"; + } /// /// 报告类必须是部分类的错误 diff --git a/GFramework.SourceGenerators.Common/generator/AttributeEnumGeneratorBase.cs b/GFramework.SourceGenerators.Common/generator/AttributeEnumGeneratorBase.cs index d12233a..76976a9 100644 --- a/GFramework.SourceGenerators.Common/generator/AttributeEnumGeneratorBase.cs +++ b/GFramework.SourceGenerators.Common/generator/AttributeEnumGeneratorBase.cs @@ -5,17 +5,17 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; namespace GFramework.SourceGenerators.Common.generator; /// -/// 属性枚举生成器基类,用于基于特定属性的枚举进行源代码生成 +/// 属性枚举生成器基类,用于基于特定属性的枚举进行源代码生成 /// public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator { /// - /// 获取属性的短名称(不包含后缀) + /// 获取属性的短名称(不包含后缀) /// protected abstract string AttributeShortNameWithoutSuffix { get; } /// - /// 初始化增量生成器 + /// 初始化增量生成器 /// /// 增量生成器初始化上下文 public void Initialize(IncrementalGeneratorInitializationContext context) @@ -31,7 +31,7 @@ public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator (ctx, _) => { var syntax = (EnumDeclarationSyntax)ctx.Node; - var symbol = ctx.SemanticModel.GetDeclaredSymbol(syntax, cancellationToken: _) as INamedTypeSymbol; + var symbol = ctx.SemanticModel.GetDeclaredSymbol(syntax, _) as INamedTypeSymbol; return (syntax, symbol); }) .Where(x => x.symbol is not null); @@ -57,7 +57,7 @@ public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator } /// - /// 解析指定符号上的属性数据 + /// 解析指定符号上的属性数据 /// /// 编译对象 /// 命名类型符号 @@ -67,7 +67,7 @@ public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator INamedTypeSymbol symbol); /// - /// 验证符号是否符合生成要求 + /// 验证符号是否符合生成要求 /// /// 源生产上下文 /// 编译对象 @@ -83,7 +83,7 @@ public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator AttributeData attr); /// - /// 生成源代码 + /// 生成源代码 /// /// 命名类型符号 /// 属性数据 @@ -93,10 +93,12 @@ public abstract class AttributeEnumGeneratorBase : IIncrementalGenerator AttributeData attr); /// - /// 获取生成文件的提示名称 + /// 获取生成文件的提示名称 /// /// 命名类型符号 /// 生成文件的提示名称 protected virtual string GetHintName(INamedTypeSymbol symbol) - => $"{symbol.Name}.g.cs"; + { + return $"{symbol.Name}.g.cs"; + } } \ No newline at end of file diff --git a/GFramework.SourceGenerators.Common/generator/MetadataAttributeClassGeneratorBase.cs b/GFramework.SourceGenerators.Common/generator/MetadataAttributeClassGeneratorBase.cs index bd5e886..4992492 100644 --- a/GFramework.SourceGenerators.Common/generator/MetadataAttributeClassGeneratorBase.cs +++ b/GFramework.SourceGenerators.Common/generator/MetadataAttributeClassGeneratorBase.cs @@ -4,18 +4,18 @@ using Microsoft.CodeAnalysis; namespace GFramework.SourceGenerators.Common.generator; /// -/// 元数据属性类生成器基类,用于基于元数据名称解析特性的抽象基类 +/// 元数据属性类生成器基类,用于基于元数据名称解析特性的抽象基类 /// public abstract class MetadataAttributeClassGeneratorBase : AttributeClassGeneratorBase { /// - /// 获取特性元数据名称的抽象属性 + /// 获取特性元数据名称的抽象属性 /// protected abstract string AttributeMetadataName { get; } /// - /// 根据元数据名称解析指定符号上的特性 + /// 根据元数据名称解析指定符号上的特性 /// /// 编译对象,用于获取类型信息 /// 命名类型符号,用于查找其上的特性 diff --git a/GFramework.SourceGenerators.Common/generator/TypeAttributeClassGeneratorBase.cs b/GFramework.SourceGenerators.Common/generator/TypeAttributeClassGeneratorBase.cs index 7f6ccd7..876161d 100644 --- a/GFramework.SourceGenerators.Common/generator/TypeAttributeClassGeneratorBase.cs +++ b/GFramework.SourceGenerators.Common/generator/TypeAttributeClassGeneratorBase.cs @@ -5,18 +5,18 @@ using Microsoft.CodeAnalysis; namespace GFramework.SourceGenerators.Common.generator; /// -/// 基于类型特性的类生成器基类 +/// 基于类型特性的类生成器基类 /// public abstract class TypeAttributeClassGeneratorBase : AttributeClassGeneratorBase { /// - /// 获取要处理的特性类型 + /// 获取要处理的特性类型 /// protected abstract Type AttributeType { get; } /// - /// 解析指定符号上的特性 + /// 解析指定符号上的特性 /// /// 编译对象(未使用) /// 要检查的命名类型符号 diff --git a/GFramework.SourceGenerators.Tests/core/GeneratorSnapshotTest.cs b/GFramework.SourceGenerators.Tests/core/GeneratorSnapshotTest.cs index 23e0e6b..47a6230 100644 --- a/GFramework.SourceGenerators.Tests/core/GeneratorSnapshotTest.cs +++ b/GFramework.SourceGenerators.Tests/core/GeneratorSnapshotTest.cs @@ -5,14 +5,14 @@ using NUnit.Framework; namespace GFramework.SourceGenerators.Tests.core; /// -/// 用于测试源代码生成器的快照测试类 +/// 用于测试源代码生成器的快照测试类 /// /// 要测试的源代码生成器类型 public static class GeneratorSnapshotTest where TGenerator : new() { /// - /// 运行源代码生成器的快照测试 + /// 运行源代码生成器的快照测试 /// /// 输入的源代码字符串 /// 快照文件存储的文件夹路径 @@ -61,10 +61,12 @@ public static class GeneratorSnapshotTest } /// - /// 标准化文本内容,将换行符统一为\n并去除首尾空白 + /// 标准化文本内容,将换行符统一为\n并去除首尾空白 /// /// 要标准化的文本 /// 标准化后的文本 private static string Normalize(string text) - => text.Replace("\r\n", "\n").Trim(); + { + return text.Replace("\r\n", "\n").Trim(); + } } \ No newline at end of file diff --git a/GFramework.SourceGenerators.Tests/rule/ContextAwareGeneratorSnapshotTests.cs b/GFramework.SourceGenerators.Tests/rule/ContextAwareGeneratorSnapshotTests.cs index aa43434..73a40fd 100644 --- a/GFramework.SourceGenerators.Tests/rule/ContextAwareGeneratorSnapshotTests.cs +++ b/GFramework.SourceGenerators.Tests/rule/ContextAwareGeneratorSnapshotTests.cs @@ -5,15 +5,15 @@ using NUnit.Framework; namespace GFramework.SourceGenerators.Tests.rule; /// -/// 上下文感知生成器快照测试类 -/// 用于测试ContextAwareGenerator源代码生成器的输出快照 +/// 上下文感知生成器快照测试类 +/// 用于测试ContextAwareGenerator源代码生成器的输出快照 /// [TestFixture] public class ContextAwareGeneratorSnapshotTests { /// - /// 测试ContextAwareGenerator源代码生成器的快照功能 - /// 验证生成器对带有ContextAware特性的类的处理结果 + /// 测试ContextAwareGenerator源代码生成器的快照功能 + /// 验证生成器对带有ContextAware特性的类的处理结果 /// /// 异步任务,无返回值 [Test] @@ -75,7 +75,7 @@ public class ContextAwareGeneratorSnapshotTests // 执行生成器快照测试,将生成的代码与预期快照进行比较 await GeneratorSnapshotTest.RunAsync( source, - snapshotFolder: Path.Combine( + Path.Combine( TestContext.CurrentContext.TestDirectory, "rule", "snapshots", diff --git a/GFramework.SourceGenerators/diagnostics/ContextAwareDiagnostic.cs b/GFramework.SourceGenerators/diagnostics/ContextAwareDiagnostic.cs index d32841d..f44b406 100644 --- a/GFramework.SourceGenerators/diagnostics/ContextAwareDiagnostic.cs +++ b/GFramework.SourceGenerators/diagnostics/ContextAwareDiagnostic.cs @@ -8,7 +8,7 @@ namespace GFramework.SourceGenerators.diagnostics; public static class ContextAwareDiagnostic { /// - /// 诊断规则:ContextAwareAttribute只能应用于类 + /// 诊断规则:ContextAwareAttribute只能应用于类 /// public static readonly DiagnosticDescriptor ContextAwareOnlyForClass = new( "GF_Rule_001", diff --git a/GFramework.SourceGenerators/enums/EnumExtensionsGenerator.cs b/GFramework.SourceGenerators/enums/EnumExtensionsGenerator.cs index a8598c1..53130ef 100644 --- a/GFramework.SourceGenerators/enums/EnumExtensionsGenerator.cs +++ b/GFramework.SourceGenerators/enums/EnumExtensionsGenerator.cs @@ -9,7 +9,7 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; namespace GFramework.SourceGenerators.enums; /// -/// 枚举扩展方法生成器,用于自动生成枚举相关的扩展方法 +/// 枚举扩展方法生成器,用于自动生成枚举相关的扩展方法 /// [Generator] public sealed class EnumExtensionsGenerator : AttributeEnumGeneratorBase @@ -18,7 +18,7 @@ public sealed class EnumExtensionsGenerator : AttributeEnumGeneratorBase $"{PathContests.SourceGeneratorsAbstractionsPath}.enums.GenerateEnumExtensionsAttribute"; /// - /// 仅用于 Syntax 粗筛选 + /// 仅用于 Syntax 粗筛选 /// protected override string AttributeShortNameWithoutSuffix => "GenerateEnumExtensions"; @@ -49,7 +49,7 @@ public sealed class EnumExtensionsGenerator : AttributeEnumGeneratorBase } /// - /// 生成枚举扩展方法的源代码 + /// 生成枚举扩展方法的源代码 /// /// 枚举类型符号 /// 属性数据 @@ -103,10 +103,12 @@ public sealed class EnumExtensionsGenerator : AttributeEnumGeneratorBase } /// - /// 获取生成文件的提示名称 + /// 获取生成文件的提示名称 /// /// 命名类型符号 /// 生成文件的提示名称 protected override string GetHintName(INamedTypeSymbol symbol) - => $"{symbol.Name}.EnumExtensions.g.cs"; + { + return $"{symbol.Name}.EnumExtensions.g.cs"; + } } \ No newline at end of file diff --git a/GFramework.SourceGenerators/logging/LoggerGenerator.cs b/GFramework.SourceGenerators/logging/LoggerGenerator.cs index 0317635..8ace031 100644 --- a/GFramework.SourceGenerators/logging/LoggerGenerator.cs +++ b/GFramework.SourceGenerators/logging/LoggerGenerator.cs @@ -16,18 +16,18 @@ namespace GFramework.SourceGenerators.logging; public sealed class LoggerGenerator : TypeAttributeClassGeneratorBase { /// - /// 获取属性元数据的完整名称,用于标识日志属性的完全限定名 + /// 获取属性元数据的完整名称,用于标识日志属性的完全限定名 /// protected override Type AttributeType => typeof(LogAttribute); /// - /// 用于语法快速筛选 + /// 用于语法快速筛选 /// protected override string AttributeShortNameWithoutSuffix => "Log"; /// - /// 对类进行额外语义校验(可选) + /// 对类进行额外语义校验(可选) /// protected override bool ValidateSymbol( SourceProductionContext context, @@ -99,11 +99,15 @@ public sealed class LoggerGenerator : TypeAttributeClassGeneratorBase } /// - /// 可以自定义生成文件名 + /// 可以自定义生成文件名 /// protected override string GetHintName(INamedTypeSymbol symbol) - => $"{symbol.Name}.Logger.g.cs"; + { + return $"{symbol.Name}.Logger.g.cs"; + } private static object? GetNamedArg(AttributeData attr, string name) - => attr.NamedArguments.FirstOrDefault(kv => kv.Key == name).Value.Value; + { + return attr.NamedArguments.FirstOrDefault(kv => kv.Key == name).Value.Value; + } } \ No newline at end of file diff --git a/GFramework.SourceGenerators/rule/ContextAwareGenerator.cs b/GFramework.SourceGenerators/rule/ContextAwareGenerator.cs index c1b1998..261ee8c 100644 --- a/GFramework.SourceGenerators/rule/ContextAwareGenerator.cs +++ b/GFramework.SourceGenerators/rule/ContextAwareGenerator.cs @@ -11,24 +11,24 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; namespace GFramework.SourceGenerators.rule; /// -/// 上下文感知生成器,用于为标记了ContextAware特性的类自动生成IContextAware接口实现 +/// 上下文感知生成器,用于为标记了ContextAware特性的类自动生成IContextAware接口实现 /// [Generator] public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase { /// - /// 获取特性的元数据名称 + /// 获取特性的元数据名称 /// protected override string AttributeMetadataName => $"{PathContests.SourceGeneratorsAbstractionsPath}.rule.ContextAwareAttribute"; /// - /// 获取特性的短名称(不包含后缀) + /// 获取特性的短名称(不包含后缀) /// protected override string AttributeShortNameWithoutSuffix => "ContextAware"; /// - /// 验证符号是否符合生成条件 + /// 验证符号是否符合生成条件 /// /// 源生产上下文 /// 编译对象 @@ -68,7 +68,7 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase /// - /// 生成源代码 + /// 生成源代码 /// /// 源生产上下文 /// 编译对象 @@ -112,18 +112,20 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase } /// - /// 获取生成文件的提示名称 + /// 获取生成文件的提示名称 /// /// 命名类型符号 /// 生成文件的提示名称 protected override string GetHintName(INamedTypeSymbol symbol) - => $"{symbol.Name}.ContextAware.g.cs"; + { + return $"{symbol.Name}.ContextAware.g.cs"; + } // ========================= // Context 属性(无 global::,与测试一致) // ========================= /// - /// 生成Context属性 + /// 生成Context属性 /// /// 字符串构建器 private static void GenerateContextProperty(StringBuilder sb) @@ -154,7 +156,7 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase // 显式接口实现(使用 global::) // ========================= /// - /// 生成接口实现 + /// 生成接口实现 /// /// 字符串构建器 /// 接口符号 @@ -176,7 +178,7 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase } /// - /// 生成方法实现 + /// 生成方法实现 /// /// 字符串构建器 /// 接口名称 @@ -203,7 +205,7 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase } /// - /// 生成方法体 + /// 生成方法体 /// /// 字符串构建器 /// 方法符号 @@ -223,10 +225,8 @@ public sealed class ContextAwareGenerator : MetadataAttributeClassGeneratorBase default: if (!method.ReturnsVoid) - { sb.AppendLine( $" throw new System.NotImplementedException(\"Method '{method.Name}' is not supported.\");"); - } break; }