From cb0d0682b0e565fc9945bdcb522bf92652d0362f Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:41:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor(core):=20=E7=BB=9F=E4=B8=80C#=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E8=A7=84=E8=8C=83=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将所有IoC相关命名空间从"IoC"重命名为"Ioc" - 将所有CQRS相关命名空间从"CQRS"重命名为"Cqrs" - 更新所有受影响的using语句以匹配新的命名空间 - 在CI工作流中添加C#命名规范校验步骤 - 修正了测试文件中的命名空间引用 --- .github/workflows/ci.yml | 5 +- .../Architecture/IArchitectureServices.cs | 2 +- .../Architecture/IServiceModule.cs | 2 +- .../Architecture/IServiceModuleManager.cs | 2 +- .../{CQRS => Cqrs}/Command/ICommandInput.cs | 2 +- .../{CQRS => Cqrs}/IInput.cs | 2 +- .../Notification/INotificationInput.cs | 2 +- .../{CQRS => Cqrs}/Query/IQueryInput.cs | 2 +- .../{CQRS => Cqrs}/Request/IRequestInput.cs | 2 +- .../{IoC => Ioc}/IIocContainer.cs | 2 +- .../Architectures/ArchitectureContextTests.cs | 2 +- .../ArchitectureServicesTests.cs | 4 +- .../Architectures/GameContextTests.cs | 4 +- .../Architectures/PriorityServiceTests.cs | 2 +- .../Command/AbstractAsyncCommandTests.cs | 4 +- .../Command/CommandExecutorTests.cs | 3 +- .../{IoC => Ioc}/IocContainerLifetimeTests.cs | 7 +- .../{IoC => Ioc}/MicrosoftDiContainerTests.cs | 4 +- .../Mediator/MediatorAdvancedFeaturesTests.cs | 2 +- .../MediatorArchitectureIntegrationTests.cs | 2 +- .../Mediator/MediatorComprehensiveTests.cs | 2 +- .../Query/AbstractAsyncQueryTests.cs | 4 +- .../Query/AsyncQueryExecutorTests.cs | 3 +- .../Query/QueryExecutorTests.cs | 3 +- .../ContextAwareEnvironmentExtensionsTests.cs | 2 +- .../Rule/ContextAwareEventExtensionsTests.cs | 2 +- .../ContextAwareServiceExtensionsTests.cs | 2 +- .../State/StateMachineSystemTests.cs | 2 +- .../Utility/AbstractContextUtilityTests.cs | 2 +- GFramework.Core/Architectures/Architecture.cs | 2 +- .../Architectures/ArchitectureContext.cs | 2 +- .../Architectures/ArchitectureServices.cs | 4 +- .../Command/AbstractAsyncCommandWithInput.cs | 2 +- .../Command/AbstractAsyncCommandWithResult.cs | 2 +- .../Command/AbstractCommandWithInput.cs | 2 +- .../Command/AbstractCommandWithResult.cs | 2 +- GFramework.Core/Command/EmptyCommandInput.cs | 2 +- .../Behaviors/LoggingBehavior.cs | 2 +- .../Behaviors/PerformanceBehavior.cs | 2 +- .../Command/AbstractCommandHandler.cs | 2 +- .../Command/AbstractStreamCommandHandler.cs | 2 +- .../{CQRS => Cqrs}/Command/CommandBase.cs | 4 +- .../AbstractNotificationHandler.cs | 2 +- .../Notification/NotificationBase.cs | 4 +- .../Query/AbstractQueryHandler.cs | 2 +- .../Query/AbstractStreamQueryHandler.cs | 2 +- .../{CQRS => Cqrs}/Query/QueryBase.cs | 4 +- .../Request/AbstractRequestHandler.cs | 2 +- .../Request/AbstractStreamRequestHandler.cs | 2 +- .../{CQRS => Cqrs}/Request/RequestBase.cs | 4 +- .../{IoC => Ioc}/MicrosoftDiContainer.cs | 4 +- .../Query/AbstractAsyncQueryWithResult.cs | 2 +- .../Query/AbstractQueryWithResult.cs | 2 +- GFramework.Core/Query/EmptyQueryInput.cs | 2 +- .../Modules/AsyncQueryExecutorModule.cs | 2 +- .../Services/Modules/CommandExecutorModule.cs | 2 +- .../Services/Modules/EventBusModule.cs | 2 +- .../Services/Modules/QueryExecutorModule.cs | 2 +- .../Services/ServiceModuleManager.cs | 2 +- .../Ecs/EcsAdvancedTests.cs | 4 +- .../Ecs/EcsBasicTests.cs | 4 +- .../Ecs/EcsIntegrationTests.cs | 4 +- .../Integration/ExplicitRegistrationTests.cs | 2 +- GFramework.Ecs.Arch/ArchEcsModule.cs | 2 +- .../Analyzers/PriorityUsageAnalyzer.cs | 2 +- scripts/validate-csharp-naming.sh | 142 ++++++++++++++++++ 66 files changed, 226 insertions(+), 85 deletions(-) rename GFramework.Core.Abstractions/{CQRS => Cqrs}/Command/ICommandInput.cs (79%) rename GFramework.Core.Abstractions/{CQRS => Cqrs}/IInput.cs (94%) rename GFramework.Core.Abstractions/{CQRS => Cqrs}/Notification/INotificationInput.cs (93%) rename GFramework.Core.Abstractions/{CQRS => Cqrs}/Query/IQueryInput.cs (71%) rename GFramework.Core.Abstractions/{CQRS => Cqrs}/Request/IRequestInput.cs (93%) rename GFramework.Core.Abstractions/{IoC => Ioc}/IIocContainer.cs (99%) rename GFramework.Core.Tests/{IoC => Ioc}/IocContainerLifetimeTests.cs (98%) rename GFramework.Core.Tests/{IoC => Ioc}/MicrosoftDiContainerTests.cs (99%) rename GFramework.Core/{CQRS => Cqrs}/Behaviors/LoggingBehavior.cs (98%) rename GFramework.Core/{CQRS => Cqrs}/Behaviors/PerformanceBehavior.cs (98%) rename GFramework.Core/{CQRS => Cqrs}/Command/AbstractCommandHandler.cs (98%) rename GFramework.Core/{CQRS => Cqrs}/Command/AbstractStreamCommandHandler.cs (97%) rename GFramework.Core/{CQRS => Cqrs}/Command/CommandBase.cs (93%) rename GFramework.Core/{CQRS => Cqrs}/Notification/AbstractNotificationHandler.cs (97%) rename GFramework.Core/{CQRS => Cqrs}/Notification/NotificationBase.cs (92%) rename GFramework.Core/{CQRS => Cqrs}/Query/AbstractQueryHandler.cs (97%) rename GFramework.Core/{CQRS => Cqrs}/Query/AbstractStreamQueryHandler.cs (97%) rename GFramework.Core/{CQRS => Cqrs}/Query/QueryBase.cs (93%) rename GFramework.Core/{CQRS => Cqrs}/Request/AbstractRequestHandler.cs (98%) rename GFramework.Core/{CQRS => Cqrs}/Request/AbstractStreamRequestHandler.cs (97%) rename GFramework.Core/{CQRS => Cqrs}/Request/RequestBase.cs (93%) rename GFramework.Core/{IoC => Ioc}/MicrosoftDiContainer.cs (99%) create mode 100644 scripts/validate-csharp-naming.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ec0bef..08a04a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,9 @@ jobs: uses: actions/checkout@v6 with: fetch-depth: 0 + # 校验C#命名空间与源码目录是否符合命名规范 + - name: Validate C# naming + run: bash scripts/validate-csharp-naming.sh # 缓存MegaLinter - name: Cache MegaLinter uses: actions/cache@v5 @@ -173,4 +176,4 @@ jobs: fetch-previous-results: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: always() \ No newline at end of file + if: always() diff --git a/GFramework.Core.Abstractions/Architecture/IArchitectureServices.cs b/GFramework.Core.Abstractions/Architecture/IArchitectureServices.cs index 552b6cc..df36e09 100644 --- a/GFramework.Core.Abstractions/Architecture/IArchitectureServices.cs +++ b/GFramework.Core.Abstractions/Architecture/IArchitectureServices.cs @@ -1,6 +1,6 @@ using GFramework.Core.Abstractions.Command; using GFramework.Core.Abstractions.Events; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Query; using GFramework.Core.Abstractions.Rule; diff --git a/GFramework.Core.Abstractions/Architecture/IServiceModule.cs b/GFramework.Core.Abstractions/Architecture/IServiceModule.cs index 6237560..c606865 100644 --- a/GFramework.Core.Abstractions/Architecture/IServiceModule.cs +++ b/GFramework.Core.Abstractions/Architecture/IServiceModule.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Lifecycle; namespace GFramework.Core.Abstractions.Architecture; diff --git a/GFramework.Core.Abstractions/Architecture/IServiceModuleManager.cs b/GFramework.Core.Abstractions/Architecture/IServiceModuleManager.cs index 70910b1..ed2145b 100644 --- a/GFramework.Core.Abstractions/Architecture/IServiceModuleManager.cs +++ b/GFramework.Core.Abstractions/Architecture/IServiceModuleManager.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; namespace GFramework.Core.Abstractions.Architecture; diff --git a/GFramework.Core.Abstractions/CQRS/Command/ICommandInput.cs b/GFramework.Core.Abstractions/Cqrs/Command/ICommandInput.cs similarity index 79% rename from GFramework.Core.Abstractions/CQRS/Command/ICommandInput.cs rename to GFramework.Core.Abstractions/Cqrs/Command/ICommandInput.cs index d924aef..5ec607e 100644 --- a/GFramework.Core.Abstractions/CQRS/Command/ICommandInput.cs +++ b/GFramework.Core.Abstractions/Cqrs/Command/ICommandInput.cs @@ -1,4 +1,4 @@ -namespace GFramework.Core.Abstractions.CQRS.Command; +namespace GFramework.Core.Abstractions.Cqrs.Command; /// /// 命令输入接口,定义命令模式中输入数据的契约 diff --git a/GFramework.Core.Abstractions/CQRS/IInput.cs b/GFramework.Core.Abstractions/Cqrs/IInput.cs similarity index 94% rename from GFramework.Core.Abstractions/CQRS/IInput.cs rename to GFramework.Core.Abstractions/Cqrs/IInput.cs index b17fa0a..dfed501 100644 --- a/GFramework.Core.Abstractions/CQRS/IInput.cs +++ b/GFramework.Core.Abstractions/Cqrs/IInput.cs @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -namespace GFramework.Core.Abstractions.CQRS; +namespace GFramework.Core.Abstractions.Cqrs; /// /// 表示输入数据的标记接口。 diff --git a/GFramework.Core.Abstractions/CQRS/Notification/INotificationInput.cs b/GFramework.Core.Abstractions/Cqrs/Notification/INotificationInput.cs similarity index 93% rename from GFramework.Core.Abstractions/CQRS/Notification/INotificationInput.cs rename to GFramework.Core.Abstractions/Cqrs/Notification/INotificationInput.cs index c06cf13..8b79183 100644 --- a/GFramework.Core.Abstractions/CQRS/Notification/INotificationInput.cs +++ b/GFramework.Core.Abstractions/Cqrs/Notification/INotificationInput.cs @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -namespace GFramework.Core.Abstractions.CQRS.Notification; +namespace GFramework.Core.Abstractions.Cqrs.Notification; /// /// 表示通知输入数据的标记接口。 diff --git a/GFramework.Core.Abstractions/CQRS/Query/IQueryInput.cs b/GFramework.Core.Abstractions/Cqrs/Query/IQueryInput.cs similarity index 71% rename from GFramework.Core.Abstractions/CQRS/Query/IQueryInput.cs rename to GFramework.Core.Abstractions/Cqrs/Query/IQueryInput.cs index b19da8a..c505c4f 100644 --- a/GFramework.Core.Abstractions/CQRS/Query/IQueryInput.cs +++ b/GFramework.Core.Abstractions/Cqrs/Query/IQueryInput.cs @@ -1,4 +1,4 @@ -namespace GFramework.Core.Abstractions.CQRS.Query; +namespace GFramework.Core.Abstractions.Cqrs.Query; /// /// 查询输入接口,定义了查询操作的输入规范 diff --git a/GFramework.Core.Abstractions/CQRS/Request/IRequestInput.cs b/GFramework.Core.Abstractions/Cqrs/Request/IRequestInput.cs similarity index 93% rename from GFramework.Core.Abstractions/CQRS/Request/IRequestInput.cs rename to GFramework.Core.Abstractions/Cqrs/Request/IRequestInput.cs index eb73e4d..0a0b159 100644 --- a/GFramework.Core.Abstractions/CQRS/Request/IRequestInput.cs +++ b/GFramework.Core.Abstractions/Cqrs/Request/IRequestInput.cs @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -namespace GFramework.Core.Abstractions.CQRS.Request; +namespace GFramework.Core.Abstractions.Cqrs.Request; /// /// 表示请求输入数据的标记接口。 diff --git a/GFramework.Core.Abstractions/IoC/IIocContainer.cs b/GFramework.Core.Abstractions/Ioc/IIocContainer.cs similarity index 99% rename from GFramework.Core.Abstractions/IoC/IIocContainer.cs rename to GFramework.Core.Abstractions/Ioc/IIocContainer.cs index 42fcb7d..b61d0f3 100644 --- a/GFramework.Core.Abstractions/IoC/IIocContainer.cs +++ b/GFramework.Core.Abstractions/Ioc/IIocContainer.cs @@ -2,7 +2,7 @@ using GFramework.Core.Abstractions.Systems; using Microsoft.Extensions.DependencyInjection; -namespace GFramework.Core.Abstractions.IoC; +namespace GFramework.Core.Abstractions.Ioc; /// /// 依赖注入容器接口,定义了服务注册、解析和管理的基本操作 diff --git a/GFramework.Core.Tests/Architectures/ArchitectureContextTests.cs b/GFramework.Core.Tests/Architectures/ArchitectureContextTests.cs index a3c2411..ee4af3e 100644 --- a/GFramework.Core.Tests/Architectures/ArchitectureContextTests.cs +++ b/GFramework.Core.Tests/Architectures/ArchitectureContextTests.cs @@ -11,7 +11,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using GFramework.Core.Query; diff --git a/GFramework.Core.Tests/Architectures/ArchitectureServicesTests.cs b/GFramework.Core.Tests/Architectures/ArchitectureServicesTests.cs index a8d92f9..56b08f0 100644 --- a/GFramework.Core.Tests/Architectures/ArchitectureServicesTests.cs +++ b/GFramework.Core.Tests/Architectures/ArchitectureServicesTests.cs @@ -2,7 +2,7 @@ using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Abstractions.Command; using GFramework.Core.Abstractions.Environment; using GFramework.Core.Abstractions.Events; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Model; using GFramework.Core.Abstractions.Query; using GFramework.Core.Abstractions.Systems; @@ -11,7 +11,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Query; using Mediator; using ICommand = GFramework.Core.Abstractions.Command.ICommand; diff --git a/GFramework.Core.Tests/Architectures/GameContextTests.cs b/GFramework.Core.Tests/Architectures/GameContextTests.cs index 083d21b..b5ff02f 100644 --- a/GFramework.Core.Tests/Architectures/GameContextTests.cs +++ b/GFramework.Core.Tests/Architectures/GameContextTests.cs @@ -2,7 +2,7 @@ using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Abstractions.Command; using GFramework.Core.Abstractions.Environment; using GFramework.Core.Abstractions.Events; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Model; using GFramework.Core.Abstractions.Query; using GFramework.Core.Abstractions.Systems; @@ -11,7 +11,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Query; using Mediator; using ICommand = GFramework.Core.Abstractions.Command.ICommand; diff --git a/GFramework.Core.Tests/Architectures/PriorityServiceTests.cs b/GFramework.Core.Tests/Architectures/PriorityServiceTests.cs index 2242457..24fd268 100644 --- a/GFramework.Core.Tests/Architectures/PriorityServiceTests.cs +++ b/GFramework.Core.Tests/Architectures/PriorityServiceTests.cs @@ -3,7 +3,7 @@ using GFramework.Core.Abstractions.Bases; using GFramework.Core.Abstractions.Model; using GFramework.Core.Abstractions.Systems; using GFramework.Core.Abstractions.Utility; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using GFramework.Core.Model; diff --git a/GFramework.Core.Tests/Command/AbstractAsyncCommandTests.cs b/GFramework.Core.Tests/Command/AbstractAsyncCommandTests.cs index 5eac1d2..e7a0611 100644 --- a/GFramework.Core.Tests/Command/AbstractAsyncCommandTests.cs +++ b/GFramework.Core.Tests/Command/AbstractAsyncCommandTests.cs @@ -1,11 +1,11 @@ using GFramework.Core.Abstractions.Command; -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Query; namespace GFramework.Core.Tests.Command; diff --git a/GFramework.Core.Tests/Command/CommandExecutorTests.cs b/GFramework.Core.Tests/Command/CommandExecutorTests.cs index 61c37fc..060da29 100644 --- a/GFramework.Core.Tests/Command/CommandExecutorTests.cs +++ b/GFramework.Core.Tests/Command/CommandExecutorTests.cs @@ -1,6 +1,5 @@ -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Command; -using NUnit.Framework; namespace GFramework.Core.Tests.Command; diff --git a/GFramework.Core.Tests/IoC/IocContainerLifetimeTests.cs b/GFramework.Core.Tests/Ioc/IocContainerLifetimeTests.cs similarity index 98% rename from GFramework.Core.Tests/IoC/IocContainerLifetimeTests.cs rename to GFramework.Core.Tests/Ioc/IocContainerLifetimeTests.cs index 42076b2..4cad849 100644 --- a/GFramework.Core.Tests/IoC/IocContainerLifetimeTests.cs +++ b/GFramework.Core.Tests/Ioc/IocContainerLifetimeTests.cs @@ -1,8 +1,7 @@ -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using Microsoft.Extensions.DependencyInjection; -using NUnit.Framework; -namespace GFramework.Core.Tests.IoC; +namespace GFramework.Core.Tests.Ioc; /// /// 测试 IoC 容器生命周期功能 @@ -205,4 +204,4 @@ public class IocContainerLifetimeTests scope2.Dispose(); scope3.Dispose(); } -} +} \ No newline at end of file diff --git a/GFramework.Core.Tests/IoC/MicrosoftDiContainerTests.cs b/GFramework.Core.Tests/Ioc/MicrosoftDiContainerTests.cs similarity index 99% rename from GFramework.Core.Tests/IoC/MicrosoftDiContainerTests.cs rename to GFramework.Core.Tests/Ioc/MicrosoftDiContainerTests.cs index c777f87..0621bcf 100644 --- a/GFramework.Core.Tests/IoC/MicrosoftDiContainerTests.cs +++ b/GFramework.Core.Tests/Ioc/MicrosoftDiContainerTests.cs @@ -1,10 +1,10 @@ using System.Reflection; using GFramework.Core.Abstractions.Bases; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using GFramework.Core.Tests.Systems; -namespace GFramework.Core.Tests.IoC; +namespace GFramework.Core.Tests.Ioc; /// /// 测试 IoC 容器功能的单元测试类 diff --git a/GFramework.Core.Tests/Mediator/MediatorAdvancedFeaturesTests.cs b/GFramework.Core.Tests/Mediator/MediatorAdvancedFeaturesTests.cs index 6a8beaf..bc5cd78 100644 --- a/GFramework.Core.Tests/Mediator/MediatorAdvancedFeaturesTests.cs +++ b/GFramework.Core.Tests/Mediator/MediatorAdvancedFeaturesTests.cs @@ -1,7 +1,7 @@ using System.Diagnostics; using System.Reflection; using GFramework.Core.Architectures; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using Mediator; using Microsoft.Extensions.DependencyInjection; diff --git a/GFramework.Core.Tests/Mediator/MediatorArchitectureIntegrationTests.cs b/GFramework.Core.Tests/Mediator/MediatorArchitectureIntegrationTests.cs index 818ebb5..6c67a72 100644 --- a/GFramework.Core.Tests/Mediator/MediatorArchitectureIntegrationTests.cs +++ b/GFramework.Core.Tests/Mediator/MediatorArchitectureIntegrationTests.cs @@ -3,7 +3,7 @@ using System.Reflection; using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Architectures; using GFramework.Core.Command; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using Mediator; using Microsoft.Extensions.DependencyInjection; diff --git a/GFramework.Core.Tests/Mediator/MediatorComprehensiveTests.cs b/GFramework.Core.Tests/Mediator/MediatorComprehensiveTests.cs index f3c4930..daee8e9 100644 --- a/GFramework.Core.Tests/Mediator/MediatorComprehensiveTests.cs +++ b/GFramework.Core.Tests/Mediator/MediatorComprehensiveTests.cs @@ -7,7 +7,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using GFramework.Core.Query; using Mediator; diff --git a/GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs b/GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs index f7e7a9d..7a645ac 100644 --- a/GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs +++ b/GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs @@ -1,11 +1,11 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Abstractions.Query; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Query; namespace GFramework.Core.Tests.Query; diff --git a/GFramework.Core.Tests/Query/AsyncQueryExecutorTests.cs b/GFramework.Core.Tests/Query/AsyncQueryExecutorTests.cs index fabee92..6491946 100644 --- a/GFramework.Core.Tests/Query/AsyncQueryExecutorTests.cs +++ b/GFramework.Core.Tests/Query/AsyncQueryExecutorTests.cs @@ -1,6 +1,5 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Query; -using NUnit.Framework; namespace GFramework.Core.Tests.Query; diff --git a/GFramework.Core.Tests/Query/QueryExecutorTests.cs b/GFramework.Core.Tests/Query/QueryExecutorTests.cs index ac8fbcf..f0305b4 100644 --- a/GFramework.Core.Tests/Query/QueryExecutorTests.cs +++ b/GFramework.Core.Tests/Query/QueryExecutorTests.cs @@ -1,6 +1,5 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Query; -using NUnit.Framework; namespace GFramework.Core.Tests.Query; diff --git a/GFramework.Core.Tests/Rule/ContextAwareEnvironmentExtensionsTests.cs b/GFramework.Core.Tests/Rule/ContextAwareEnvironmentExtensionsTests.cs index 30ef275..31b8b71 100644 --- a/GFramework.Core.Tests/Rule/ContextAwareEnvironmentExtensionsTests.cs +++ b/GFramework.Core.Tests/Rule/ContextAwareEnvironmentExtensionsTests.cs @@ -2,7 +2,7 @@ using GFramework.Core.Abstractions.Environment; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; using GFramework.Core.Extensions; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Rule; namespace GFramework.Core.Tests.Rule; diff --git a/GFramework.Core.Tests/Rule/ContextAwareEventExtensionsTests.cs b/GFramework.Core.Tests/Rule/ContextAwareEventExtensionsTests.cs index 3f59cce..0ee563c 100644 --- a/GFramework.Core.Tests/Rule/ContextAwareEventExtensionsTests.cs +++ b/GFramework.Core.Tests/Rule/ContextAwareEventExtensionsTests.cs @@ -3,7 +3,7 @@ using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; using GFramework.Core.Events; using GFramework.Core.Extensions; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Rule; namespace GFramework.Core.Tests.Rule; diff --git a/GFramework.Core.Tests/Rule/ContextAwareServiceExtensionsTests.cs b/GFramework.Core.Tests/Rule/ContextAwareServiceExtensionsTests.cs index 35c035c..d789bf4 100644 --- a/GFramework.Core.Tests/Rule/ContextAwareServiceExtensionsTests.cs +++ b/GFramework.Core.Tests/Rule/ContextAwareServiceExtensionsTests.cs @@ -6,7 +6,7 @@ using GFramework.Core.Abstractions.Systems; using GFramework.Core.Abstractions.Utility; using GFramework.Core.Architectures; using GFramework.Core.Extensions; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Rule; namespace GFramework.Core.Tests.Rule; diff --git a/GFramework.Core.Tests/State/StateMachineSystemTests.cs b/GFramework.Core.Tests/State/StateMachineSystemTests.cs index fab9f93..0ea62de 100644 --- a/GFramework.Core.Tests/State/StateMachineSystemTests.cs +++ b/GFramework.Core.Tests/State/StateMachineSystemTests.cs @@ -6,7 +6,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Logging; using GFramework.Core.Query; using GFramework.Core.State; diff --git a/GFramework.Core.Tests/Utility/AbstractContextUtilityTests.cs b/GFramework.Core.Tests/Utility/AbstractContextUtilityTests.cs index d216de4..9fcdc0b 100644 --- a/GFramework.Core.Tests/Utility/AbstractContextUtilityTests.cs +++ b/GFramework.Core.Tests/Utility/AbstractContextUtilityTests.cs @@ -5,7 +5,7 @@ using GFramework.Core.Architectures; using GFramework.Core.Command; using GFramework.Core.Environment; using GFramework.Core.Events; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Query; using GFramework.Core.Utility; diff --git a/GFramework.Core/Architectures/Architecture.cs b/GFramework.Core/Architectures/Architecture.cs index 3b958fb..a20685d 100644 --- a/GFramework.Core/Architectures/Architecture.cs +++ b/GFramework.Core/Architectures/Architecture.cs @@ -1,7 +1,7 @@ using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Abstractions.Enums; using GFramework.Core.Abstractions.Environment; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Lifecycle; using GFramework.Core.Abstractions.Logging; using GFramework.Core.Abstractions.Model; diff --git a/GFramework.Core/Architectures/ArchitectureContext.cs b/GFramework.Core/Architectures/ArchitectureContext.cs index 1464b7b..e18dc06 100644 --- a/GFramework.Core/Architectures/ArchitectureContext.cs +++ b/GFramework.Core/Architectures/ArchitectureContext.cs @@ -3,7 +3,7 @@ using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Abstractions.Command; using GFramework.Core.Abstractions.Environment; using GFramework.Core.Abstractions.Events; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Model; using GFramework.Core.Abstractions.Query; using GFramework.Core.Abstractions.Systems; diff --git a/GFramework.Core/Architectures/ArchitectureServices.cs b/GFramework.Core/Architectures/ArchitectureServices.cs index da811f2..04a1505 100644 --- a/GFramework.Core/Architectures/ArchitectureServices.cs +++ b/GFramework.Core/Architectures/ArchitectureServices.cs @@ -1,9 +1,9 @@ using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Abstractions.Command; using GFramework.Core.Abstractions.Events; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Query; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Core.Services; namespace GFramework.Core.Architectures; diff --git a/GFramework.Core/Command/AbstractAsyncCommandWithInput.cs b/GFramework.Core/Command/AbstractAsyncCommandWithInput.cs index a739e6f..491bbd8 100644 --- a/GFramework.Core/Command/AbstractAsyncCommandWithInput.cs +++ b/GFramework.Core/Command/AbstractAsyncCommandWithInput.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Command; -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Rule; namespace GFramework.Core.Command; diff --git a/GFramework.Core/Command/AbstractAsyncCommandWithResult.cs b/GFramework.Core/Command/AbstractAsyncCommandWithResult.cs index d82d307..4739019 100644 --- a/GFramework.Core/Command/AbstractAsyncCommandWithResult.cs +++ b/GFramework.Core/Command/AbstractAsyncCommandWithResult.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Command; -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Rule; namespace GFramework.Core.Command; diff --git a/GFramework.Core/Command/AbstractCommandWithInput.cs b/GFramework.Core/Command/AbstractCommandWithInput.cs index 3bd953b..5326fe6 100644 --- a/GFramework.Core/Command/AbstractCommandWithInput.cs +++ b/GFramework.Core/Command/AbstractCommandWithInput.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Command; -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Rule; namespace GFramework.Core.Command; diff --git a/GFramework.Core/Command/AbstractCommandWithResult.cs b/GFramework.Core/Command/AbstractCommandWithResult.cs index bed8b8f..6790182 100644 --- a/GFramework.Core/Command/AbstractCommandWithResult.cs +++ b/GFramework.Core/Command/AbstractCommandWithResult.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Command; -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using GFramework.Core.Rule; namespace GFramework.Core.Command; diff --git a/GFramework.Core/Command/EmptyCommandInput.cs b/GFramework.Core/Command/EmptyCommandInput.cs index 7242e20..4d08f4e 100644 --- a/GFramework.Core/Command/EmptyCommandInput.cs +++ b/GFramework.Core/Command/EmptyCommandInput.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; namespace GFramework.Core.Command; diff --git a/GFramework.Core/CQRS/Behaviors/LoggingBehavior.cs b/GFramework.Core/Cqrs/Behaviors/LoggingBehavior.cs similarity index 98% rename from GFramework.Core/CQRS/Behaviors/LoggingBehavior.cs rename to GFramework.Core/Cqrs/Behaviors/LoggingBehavior.cs index 0abfe5a..4a56c77 100644 --- a/GFramework.Core/CQRS/Behaviors/LoggingBehavior.cs +++ b/GFramework.Core/Cqrs/Behaviors/LoggingBehavior.cs @@ -16,7 +16,7 @@ using GFramework.Core.Abstractions.Logging; using GFramework.Core.Logging; using Mediator; -namespace GFramework.Core.CQRS.Behaviors; +namespace GFramework.Core.Cqrs.Behaviors; /// /// 日志记录行为类,用于在CQRS管道中记录请求处理的日志信息 diff --git a/GFramework.Core/CQRS/Behaviors/PerformanceBehavior.cs b/GFramework.Core/Cqrs/Behaviors/PerformanceBehavior.cs similarity index 98% rename from GFramework.Core/CQRS/Behaviors/PerformanceBehavior.cs rename to GFramework.Core/Cqrs/Behaviors/PerformanceBehavior.cs index abef140..f86669d 100644 --- a/GFramework.Core/CQRS/Behaviors/PerformanceBehavior.cs +++ b/GFramework.Core/Cqrs/Behaviors/PerformanceBehavior.cs @@ -16,7 +16,7 @@ using GFramework.Core.Abstractions.Logging; using GFramework.Core.Logging; using Mediator; -namespace GFramework.Core.CQRS.Behaviors; +namespace GFramework.Core.Cqrs.Behaviors; /// /// 性能监控行为类,用于监控CQRS请求的执行时间 diff --git a/GFramework.Core/CQRS/Command/AbstractCommandHandler.cs b/GFramework.Core/Cqrs/Command/AbstractCommandHandler.cs similarity index 98% rename from GFramework.Core/CQRS/Command/AbstractCommandHandler.cs rename to GFramework.Core/Cqrs/Command/AbstractCommandHandler.cs index ca16877..8f7b611 100644 --- a/GFramework.Core/CQRS/Command/AbstractCommandHandler.cs +++ b/GFramework.Core/Cqrs/Command/AbstractCommandHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Command; +namespace GFramework.Core.Cqrs.Command; /// /// 抽象命令处理器基类 diff --git a/GFramework.Core/CQRS/Command/AbstractStreamCommandHandler.cs b/GFramework.Core/Cqrs/Command/AbstractStreamCommandHandler.cs similarity index 97% rename from GFramework.Core/CQRS/Command/AbstractStreamCommandHandler.cs rename to GFramework.Core/Cqrs/Command/AbstractStreamCommandHandler.cs index a0745e7..064cb27 100644 --- a/GFramework.Core/CQRS/Command/AbstractStreamCommandHandler.cs +++ b/GFramework.Core/Cqrs/Command/AbstractStreamCommandHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Command; +namespace GFramework.Core.Cqrs.Command; /// /// 抽象流式命令处理器基类 diff --git a/GFramework.Core/CQRS/Command/CommandBase.cs b/GFramework.Core/Cqrs/Command/CommandBase.cs similarity index 93% rename from GFramework.Core/CQRS/Command/CommandBase.cs rename to GFramework.Core/Cqrs/Command/CommandBase.cs index 506bebc..ba0e56a 100644 --- a/GFramework.Core/CQRS/Command/CommandBase.cs +++ b/GFramework.Core/Cqrs/Command/CommandBase.cs @@ -11,10 +11,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -using GFramework.Core.Abstractions.CQRS.Command; +using GFramework.Core.Abstractions.Cqrs.Command; using Mediator; -namespace GFramework.Core.CQRS.Command; +namespace GFramework.Core.Cqrs.Command; /// /// 表示一个基础命令类,用于处理带有输入和响应的命令模式实现。 diff --git a/GFramework.Core/CQRS/Notification/AbstractNotificationHandler.cs b/GFramework.Core/Cqrs/Notification/AbstractNotificationHandler.cs similarity index 97% rename from GFramework.Core/CQRS/Notification/AbstractNotificationHandler.cs rename to GFramework.Core/Cqrs/Notification/AbstractNotificationHandler.cs index 80a8604..de4772f 100644 --- a/GFramework.Core/CQRS/Notification/AbstractNotificationHandler.cs +++ b/GFramework.Core/Cqrs/Notification/AbstractNotificationHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Notification; +namespace GFramework.Core.Cqrs.Notification; /// /// 抽象通知处理器基类 diff --git a/GFramework.Core/CQRS/Notification/NotificationBase.cs b/GFramework.Core/Cqrs/Notification/NotificationBase.cs similarity index 92% rename from GFramework.Core/CQRS/Notification/NotificationBase.cs rename to GFramework.Core/Cqrs/Notification/NotificationBase.cs index 4a156bf..96e26ea 100644 --- a/GFramework.Core/CQRS/Notification/NotificationBase.cs +++ b/GFramework.Core/Cqrs/Notification/NotificationBase.cs @@ -11,10 +11,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -using GFramework.Core.Abstractions.CQRS.Notification; +using GFramework.Core.Abstractions.Cqrs.Notification; using Mediator; -namespace GFramework.Core.CQRS.Notification; +namespace GFramework.Core.Cqrs.Notification; /// /// 表示一个基础通知类,用于处理带有输入的通知模式实现。 diff --git a/GFramework.Core/CQRS/Query/AbstractQueryHandler.cs b/GFramework.Core/Cqrs/Query/AbstractQueryHandler.cs similarity index 97% rename from GFramework.Core/CQRS/Query/AbstractQueryHandler.cs rename to GFramework.Core/Cqrs/Query/AbstractQueryHandler.cs index fde1a3f..4ce887c 100644 --- a/GFramework.Core/CQRS/Query/AbstractQueryHandler.cs +++ b/GFramework.Core/Cqrs/Query/AbstractQueryHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Query; +namespace GFramework.Core.Cqrs.Query; /// /// 抽象查询处理器基类 diff --git a/GFramework.Core/CQRS/Query/AbstractStreamQueryHandler.cs b/GFramework.Core/Cqrs/Query/AbstractStreamQueryHandler.cs similarity index 97% rename from GFramework.Core/CQRS/Query/AbstractStreamQueryHandler.cs rename to GFramework.Core/Cqrs/Query/AbstractStreamQueryHandler.cs index 9e155ec..50cf181 100644 --- a/GFramework.Core/CQRS/Query/AbstractStreamQueryHandler.cs +++ b/GFramework.Core/Cqrs/Query/AbstractStreamQueryHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Query; +namespace GFramework.Core.Cqrs.Query; /// /// 抽象流式查询处理器基类 diff --git a/GFramework.Core/CQRS/Query/QueryBase.cs b/GFramework.Core/Cqrs/Query/QueryBase.cs similarity index 93% rename from GFramework.Core/CQRS/Query/QueryBase.cs rename to GFramework.Core/Cqrs/Query/QueryBase.cs index eadf491..2ef0f34 100644 --- a/GFramework.Core/CQRS/Query/QueryBase.cs +++ b/GFramework.Core/Cqrs/Query/QueryBase.cs @@ -11,10 +11,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using Mediator; -namespace GFramework.Core.CQRS.Query; +namespace GFramework.Core.Cqrs.Query; /// /// 表示一个基础查询类,用于处理带有输入和响应的查询模式实现。 diff --git a/GFramework.Core/CQRS/Request/AbstractRequestHandler.cs b/GFramework.Core/Cqrs/Request/AbstractRequestHandler.cs similarity index 98% rename from GFramework.Core/CQRS/Request/AbstractRequestHandler.cs rename to GFramework.Core/Cqrs/Request/AbstractRequestHandler.cs index b0fd778..88e9efa 100644 --- a/GFramework.Core/CQRS/Request/AbstractRequestHandler.cs +++ b/GFramework.Core/Cqrs/Request/AbstractRequestHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Request; +namespace GFramework.Core.Cqrs.Request; /// /// 抽象请求处理器基类,用于处理不返回具体响应的请求 diff --git a/GFramework.Core/CQRS/Request/AbstractStreamRequestHandler.cs b/GFramework.Core/Cqrs/Request/AbstractStreamRequestHandler.cs similarity index 97% rename from GFramework.Core/CQRS/Request/AbstractStreamRequestHandler.cs rename to GFramework.Core/Cqrs/Request/AbstractStreamRequestHandler.cs index 861f3e7..a6151b4 100644 --- a/GFramework.Core/CQRS/Request/AbstractStreamRequestHandler.cs +++ b/GFramework.Core/Cqrs/Request/AbstractStreamRequestHandler.cs @@ -14,7 +14,7 @@ using GFramework.Core.Rule; using Mediator; -namespace GFramework.Core.CQRS.Request; +namespace GFramework.Core.Cqrs.Request; /// /// 抽象流式请求处理器基类 diff --git a/GFramework.Core/CQRS/Request/RequestBase.cs b/GFramework.Core/Cqrs/Request/RequestBase.cs similarity index 93% rename from GFramework.Core/CQRS/Request/RequestBase.cs rename to GFramework.Core/Cqrs/Request/RequestBase.cs index 876398b..8b87875 100644 --- a/GFramework.Core/CQRS/Request/RequestBase.cs +++ b/GFramework.Core/Cqrs/Request/RequestBase.cs @@ -11,10 +11,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -using GFramework.Core.Abstractions.CQRS.Request; +using GFramework.Core.Abstractions.Cqrs.Request; using Mediator; -namespace GFramework.Core.CQRS.Request; +namespace GFramework.Core.Cqrs.Request; /// /// 表示一个基础请求类,用于处理带有输入和响应的请求模式实现。 diff --git a/GFramework.Core/IoC/MicrosoftDiContainer.cs b/GFramework.Core/Ioc/MicrosoftDiContainer.cs similarity index 99% rename from GFramework.Core/IoC/MicrosoftDiContainer.cs rename to GFramework.Core/Ioc/MicrosoftDiContainer.cs index 2a4bb9f..48373fb 100644 --- a/GFramework.Core/IoC/MicrosoftDiContainer.cs +++ b/GFramework.Core/Ioc/MicrosoftDiContainer.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Bases; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Logging; using GFramework.Core.Abstractions.Systems; using GFramework.Core.Logging; @@ -7,7 +7,7 @@ using GFramework.Core.Rule; using Mediator; using Microsoft.Extensions.DependencyInjection; -namespace GFramework.Core.IoC; +namespace GFramework.Core.Ioc; /// /// Microsoft.Extensions.DependencyInjection 适配器 diff --git a/GFramework.Core/Query/AbstractAsyncQueryWithResult.cs b/GFramework.Core/Query/AbstractAsyncQueryWithResult.cs index 9efaf39..03c3507 100644 --- a/GFramework.Core/Query/AbstractAsyncQueryWithResult.cs +++ b/GFramework.Core/Query/AbstractAsyncQueryWithResult.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Abstractions.Query; using GFramework.Core.Rule; diff --git a/GFramework.Core/Query/AbstractQueryWithResult.cs b/GFramework.Core/Query/AbstractQueryWithResult.cs index ad00b22..cb46071 100644 --- a/GFramework.Core/Query/AbstractQueryWithResult.cs +++ b/GFramework.Core/Query/AbstractQueryWithResult.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; using GFramework.Core.Abstractions.Query; using GFramework.Core.Rule; diff --git a/GFramework.Core/Query/EmptyQueryInput.cs b/GFramework.Core/Query/EmptyQueryInput.cs index e2893a5..7d70718 100644 --- a/GFramework.Core/Query/EmptyQueryInput.cs +++ b/GFramework.Core/Query/EmptyQueryInput.cs @@ -1,4 +1,4 @@ -using GFramework.Core.Abstractions.CQRS.Query; +using GFramework.Core.Abstractions.Cqrs.Query; namespace GFramework.Core.Query; diff --git a/GFramework.Core/Services/Modules/AsyncQueryExecutorModule.cs b/GFramework.Core/Services/Modules/AsyncQueryExecutorModule.cs index a3920f8..a29aade 100644 --- a/GFramework.Core/Services/Modules/AsyncQueryExecutorModule.cs +++ b/GFramework.Core/Services/Modules/AsyncQueryExecutorModule.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Architecture; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Query; namespace GFramework.Core.Services.Modules; diff --git a/GFramework.Core/Services/Modules/CommandExecutorModule.cs b/GFramework.Core/Services/Modules/CommandExecutorModule.cs index a4e462e..f94f4d5 100644 --- a/GFramework.Core/Services/Modules/CommandExecutorModule.cs +++ b/GFramework.Core/Services/Modules/CommandExecutorModule.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Architecture; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Command; namespace GFramework.Core.Services.Modules; diff --git a/GFramework.Core/Services/Modules/EventBusModule.cs b/GFramework.Core/Services/Modules/EventBusModule.cs index cb8b75c..32065ba 100644 --- a/GFramework.Core/Services/Modules/EventBusModule.cs +++ b/GFramework.Core/Services/Modules/EventBusModule.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Architecture; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Events; namespace GFramework.Core.Services.Modules; diff --git a/GFramework.Core/Services/Modules/QueryExecutorModule.cs b/GFramework.Core/Services/Modules/QueryExecutorModule.cs index 487d718..5df23bc 100644 --- a/GFramework.Core/Services/Modules/QueryExecutorModule.cs +++ b/GFramework.Core/Services/Modules/QueryExecutorModule.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Architecture; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Query; namespace GFramework.Core.Services.Modules; diff --git a/GFramework.Core/Services/ServiceModuleManager.cs b/GFramework.Core/Services/ServiceModuleManager.cs index 3cf4b1d..1bb07cf 100644 --- a/GFramework.Core/Services/ServiceModuleManager.cs +++ b/GFramework.Core/Services/ServiceModuleManager.cs @@ -1,5 +1,5 @@ using GFramework.Core.Abstractions.Architecture; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; using GFramework.Core.Abstractions.Lifecycle; using GFramework.Core.Abstractions.Logging; using GFramework.Core.Logging; diff --git a/GFramework.Ecs.Arch.Tests/Ecs/EcsAdvancedTests.cs b/GFramework.Ecs.Arch.Tests/Ecs/EcsAdvancedTests.cs index 5d9d808..7bf6e34 100644 --- a/GFramework.Ecs.Arch.Tests/Ecs/EcsAdvancedTests.cs +++ b/GFramework.Ecs.Arch.Tests/Ecs/EcsAdvancedTests.cs @@ -2,11 +2,11 @@ using System.Diagnostics.CodeAnalysis; using Arch.Core; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Ecs.Arch.Components; using GFramework.Ecs.Arch.Systems; -namespace GFramework.Ecs.Arch.Tests.ECS; +namespace GFramework.Ecs.Arch.Tests.Ecs; /// /// ECS 高级功能测试类 - 使用 Arch 原生 API diff --git a/GFramework.Ecs.Arch.Tests/Ecs/EcsBasicTests.cs b/GFramework.Ecs.Arch.Tests/Ecs/EcsBasicTests.cs index e6681d0..deca15f 100644 --- a/GFramework.Ecs.Arch.Tests/Ecs/EcsBasicTests.cs +++ b/GFramework.Ecs.Arch.Tests/Ecs/EcsBasicTests.cs @@ -2,11 +2,11 @@ using System.Diagnostics.CodeAnalysis; using Arch.Core; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Ecs.Arch.Components; using GFramework.Ecs.Arch.Systems; -namespace GFramework.Ecs.Arch.Tests.ECS; +namespace GFramework.Ecs.Arch.Tests.Ecs; /// /// ECS 基础功能测试类 - 使用 Arch 原生 API diff --git a/GFramework.Ecs.Arch.Tests/Ecs/EcsIntegrationTests.cs b/GFramework.Ecs.Arch.Tests/Ecs/EcsIntegrationTests.cs index 79be58e..37ad34b 100644 --- a/GFramework.Ecs.Arch.Tests/Ecs/EcsIntegrationTests.cs +++ b/GFramework.Ecs.Arch.Tests/Ecs/EcsIntegrationTests.cs @@ -2,11 +2,11 @@ using System.Diagnostics.CodeAnalysis; using Arch.Core; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Ecs.Arch.Components; using GFramework.Ecs.Arch.Systems; -namespace GFramework.Ecs.Arch.Tests.ECS; +namespace GFramework.Ecs.Arch.Tests.Ecs; /// /// ECS 集成测试类 - 使用 Arch 原生 API diff --git a/GFramework.Ecs.Arch.Tests/Integration/ExplicitRegistrationTests.cs b/GFramework.Ecs.Arch.Tests/Integration/ExplicitRegistrationTests.cs index 5e13e51..dc27db2 100644 --- a/GFramework.Ecs.Arch.Tests/Integration/ExplicitRegistrationTests.cs +++ b/GFramework.Ecs.Arch.Tests/Integration/ExplicitRegistrationTests.cs @@ -1,7 +1,7 @@ using Arch.Core; using GFramework.Core.Abstractions.Architecture; using GFramework.Core.Architectures; -using GFramework.Core.IoC; +using GFramework.Core.Ioc; using GFramework.Ecs.Arch.Abstractions; using GFramework.Ecs.Arch.Extensions; diff --git a/GFramework.Ecs.Arch/ArchEcsModule.cs b/GFramework.Ecs.Arch/ArchEcsModule.cs index 642c930..9a22c27 100644 --- a/GFramework.Ecs.Arch/ArchEcsModule.cs +++ b/GFramework.Ecs.Arch/ArchEcsModule.cs @@ -1,5 +1,5 @@ using Arch.Core; -using GFramework.Core.Abstractions.IoC; +using GFramework.Core.Abstractions.Ioc; namespace GFramework.Ecs.Arch; diff --git a/GFramework.SourceGenerators/Analyzers/PriorityUsageAnalyzer.cs b/GFramework.SourceGenerators/Analyzers/PriorityUsageAnalyzer.cs index 3267853..6fc3a96 100644 --- a/GFramework.SourceGenerators/Analyzers/PriorityUsageAnalyzer.cs +++ b/GFramework.SourceGenerators/Analyzers/PriorityUsageAnalyzer.cs @@ -36,7 +36,7 @@ public sealed class PriorityUsageAnalyzer : DiagnosticAnalyzer return; var iocContainer = compilationContext.Compilation.GetTypeByMetadataName( - "GFramework.Core.Abstractions.IoC.IIocContainer"); + "GFramework.Core.Abstractions.Ioc.IIocContainer"); var architectureContext = compilationContext.Compilation.GetTypeByMetadataName( "GFramework.Core.Abstractions.Architecture.IArchitectureContext"); diff --git a/scripts/validate-csharp-naming.sh b/scripts/validate-csharp-naming.sh new file mode 100644 index 0000000..726395b --- /dev/null +++ b/scripts/validate-csharp-naming.sh @@ -0,0 +1,142 @@ +#!/usr/bin/env bash +set -euo pipefail + +if ! command -v git >/dev/null 2>&1; then + echo "git is required to enumerate tracked C# files." >&2 + exit 2 +fi + +if ! command -v python3 >/dev/null 2>&1; then + echo "python3 is required to validate C# naming conventions." >&2 + exit 2 +fi + +repo_root="$(git rev-parse --show-toplevel)" +cd "$repo_root" + +python3 - <<'PY' +from __future__ import annotations + +import re +import subprocess +import sys +from pathlib import Path + +ROOT = Path.cwd() +EXCLUDED_PREFIXES = ( + "Godot/script_templates/", +) + +NAMESPACE_PATTERN = re.compile(r"^\s*namespace\s+([A-Za-z][A-Za-z0-9_.]*)\s*(?:[;{]|$)") +SEGMENT_PATTERN = re.compile(r"^[A-Za-z][A-Za-z0-9]*$") +PASCAL_CASE_PATTERN = re.compile( + r"^(?:[A-Z](?=[A-Z][a-z0-9])|[A-Z]{2}(?=$|[A-Z][a-z0-9])|[A-Z][a-z0-9]+)+$" +) + + +def is_excluded(path: str) -> bool: + normalized = path.strip("./") + return any( + normalized == prefix.rstrip("/") or normalized.startswith(prefix) + for prefix in EXCLUDED_PREFIXES + ) + + +def validate_segment(segment: str) -> str | None: + if not SEGMENT_PATTERN.fullmatch(segment): + return "must start with a letter and contain only letters or digits" + + if not segment[0].isupper(): + return "must start with an uppercase letter" + + if segment.isupper(): + if len(segment) <= 2: + return None + return "acronyms longer than 2 letters must use PascalCase" + + if not PASCAL_CASE_PATTERN.fullmatch(segment): + return "must use PascalCase; only 2-letter acronyms may stay fully uppercase" + + return None + + +def tracked_csharp_files() -> list[str]: + result = subprocess.run( + ["git", "ls-files", "--", "*.cs"], + check=True, + capture_output=True, + text=True, + ) + return [ + line + for line in result.stdout.splitlines() + if line and not is_excluded(line) + ] + + +def read_text(path: Path) -> str: + try: + return path.read_text(encoding="utf-8-sig") + except UnicodeDecodeError: + return path.read_text(encoding="utf-8") + + +files = tracked_csharp_files() +namespace_violations: list[tuple[str, int, str, list[str]]] = [] +directory_violations: list[tuple[str, str, str]] = [] +seen_directories: set[str] = set() + +for relative_file in files: + file_path = ROOT / relative_file + for line_number, line in enumerate(read_text(file_path).splitlines(), start=1): + match = NAMESPACE_PATTERN.match(line) + if not match: + continue + + namespace = match.group(1) + segment_errors = [] + for segment in namespace.split("."): + reason = validate_segment(segment) + if reason is not None: + segment_errors.append(f'{segment}: {reason}') + + if segment_errors: + namespace_violations.append((relative_file, line_number, namespace, segment_errors)) + + parent = Path(relative_file).parent + while parent != Path("."): + relative_dir = parent.as_posix() + if relative_dir not in seen_directories: + seen_directories.add(relative_dir) + for raw_segment in relative_dir.split("/"): + segments = raw_segment.split(".") + for segment in segments: + reason = validate_segment(segment) + if reason is not None: + directory_violations.append((relative_dir, segment, reason)) + break + else: + continue + break + + parent = parent.parent + +if namespace_violations or directory_violations: + print("C# naming validation failed.") + + if namespace_violations: + print("\nNamespace violations:") + for file_path, line_number, namespace, errors in namespace_violations: + print(f"- {file_path}:{line_number} -> {namespace}") + for error in errors: + print(f" * {error}") + + if directory_violations: + print("\nDirectory violations:") + for directory_path, segment, reason in sorted(set(directory_violations)): + print(f'- {directory_path} -> "{segment}": {reason}') + + sys.exit(1) + +print(f"C# naming validation passed for {len(files)} tracked C# files.") +PY