diff --git a/GFramework.Core.Abstractions/architecture/IArchitecture.cs b/GFramework.Core.Abstractions/architecture/IArchitecture.cs
index 487d323..332c6fc 100644
--- a/GFramework.Core.Abstractions/architecture/IArchitecture.cs
+++ b/GFramework.Core.Abstractions/architecture/IArchitecture.cs
@@ -36,21 +36,21 @@ public interface IArchitecture : IAsyncInitializable
///
/// 系统类型,必须实现ISystem接口
/// 要注册的系统实例
- void RegisterSystem(T system) where T : ISystem;
+ T RegisterSystem(T system) where T : ISystem;
///
/// 注册模型实例到架构中
///
/// 模型类型,必须实现IModel接口
/// 要注册的模型实例
- void RegisterModel(T model) where T : IModel;
+ T RegisterModel(T model) where T : IModel;
///
/// 注册工具实例到架构中
///
/// 工具类型,必须实现IUtility接口
/// 要注册的工具实例
- void RegisterUtility(T utility) where T : IUtility;
+ T RegisterUtility(T utility) where T : IUtility;
///
/// 安装架构模块
diff --git a/GFramework.Core/architecture/Architecture.cs b/GFramework.Core/architecture/Architecture.cs
index 2470ff5..a451f87 100644
--- a/GFramework.Core/architecture/Architecture.cs
+++ b/GFramework.Core/architecture/Architecture.cs
@@ -425,9 +425,10 @@ public abstract class Architecture(
/// 注册一个系统到架构中。
/// 若当前未初始化,则暂存至待初始化列表;否则立即初始化该系统。
///
- /// 要注册的系统类型
+ /// 要注册的系统类型,必须实现ISystem接口
/// 要注册的系统实例
- public void RegisterSystem(TSystem system) where TSystem : ISystem
+ /// 注册成功的系统实例
+ public TSystem RegisterSystem(TSystem system) where TSystem : ISystem
{
ValidateRegistration("system");
@@ -440,15 +441,17 @@ public abstract class Architecture(
RegisterLifecycleComponent(system);
_logger.Info($"System registered: {typeof(TSystem).Name}");
+ return system;
}
///
/// 注册一个模型到架构中。
/// 若当前未初始化,则暂存至待初始化列表;否则立即初始化该模型。
///
- /// 要注册的模型类型
+ /// 要注册的模型类型,必须实现IModel接口
/// 要注册的模型实例
- public void RegisterModel(TModel model) where TModel : IModel
+ /// 注册成功的模型实例
+ public TModel RegisterModel(TModel model) where TModel : IModel
{
ValidateRegistration("model");
@@ -461,18 +464,20 @@ public abstract class Architecture(
RegisterLifecycleComponent(model);
_logger.Info($"Model registered: {typeof(TModel).Name}");
+ return model;
}
///
- /// 注册一个工具到架构中。
- /// 工具不会被延迟初始化,直接放入IOC容器供后续使用。
+ /// 注册一个工具到架构中
///
- /// 要注册的工具类型
+ /// 要注册的工具类型,必须实现IUtility接口
/// 要注册的工具实例
- public void RegisterUtility(TUtility utility) where TUtility : IUtility
+ /// 注册成功的工具实例
+ public TUtility RegisterUtility(TUtility utility) where TUtility : IUtility
{
_logger.Debug($"Registering utility: {typeof(TUtility).Name}");
+ // 处理上下文工具类型的设置和生命周期管理
utility.IfType(contextUtility =>
{
contextUtility.SetContext(Context);
@@ -482,6 +487,7 @@ public abstract class Architecture(
Container.RegisterPlurality(utility);
_logger.Info($"Utility registered: {typeof(TUtility).Name}");
+ return utility;
}
#endregion