feat(architecture): 修改InstallModule和RegisterLifecycleHook方法返回实例

- InstallModule方法现在返回安装的模块实例
- RegisterLifecycleHook方法现在返回注册的钩子实例
- 为两个方法添加返回值的XML文档注释
- 更新接口定义以匹配新的返回类型
This commit is contained in:
GeWuYou 2026-01-17 19:44:56 +08:00
parent 3bc7e84af4
commit ba91b68c64
2 changed files with 11 additions and 5 deletions

View File

@ -1,4 +1,4 @@
using GFramework.Core.Abstractions.model;
using GFramework.Core.Abstractions.model;
using GFramework.Core.Abstractions.system;
using GFramework.Core.Abstractions.utility;
@ -56,11 +56,13 @@ public interface IArchitecture : IAsyncInitializable
/// 安装架构模块
/// </summary>
/// <param name="module">要安装的模块</param>
void InstallModule(IArchitectureModule module);
/// <returns>安装的模块实例</returns>
IArchitectureModule InstallModule(IArchitectureModule module);
/// <summary>
/// 注册生命周期钩子
/// </summary>
/// <param name="hook">生命周期钩子实例</param>
void RegisterLifecycleHook(IArchitectureLifecycle hook);
/// <returns>注册的钩子实例</returns>
IArchitectureLifecycle RegisterLifecycleHook(IArchitectureLifecycle hook);
}

View File

@ -36,7 +36,8 @@ public abstract class Architecture(
/// 安装架构模块
/// </summary>
/// <param name="module">要安装的模块</param>
public void InstallModule(IArchitectureModule module)
/// <returns>安装的模块实例</returns>
public IArchitectureModule InstallModule(IArchitectureModule module)
{
var name = module.GetType().Name;
var logger = LoggerFactoryResolver.Provider.CreateLogger(name);
@ -45,6 +46,7 @@ public abstract class Architecture(
Container.RegisterPlurality(module);
module.Install(this);
logger.Info($"Module installed: {name}");
return module;
}
#endregion
@ -222,12 +224,14 @@ public abstract class Architecture(
/// 注册生命周期钩子
/// </summary>
/// <param name="hook">生命周期钩子实例</param>
public void RegisterLifecycleHook(IArchitectureLifecycle hook)
/// <returns>注册的钩子实例</returns>
public IArchitectureLifecycle RegisterLifecycleHook(IArchitectureLifecycle hook)
{
if (CurrentPhase >= ArchitecturePhase.Ready && !Configuration.ArchitectureProperties.AllowLateRegistration)
throw new InvalidOperationException(
"Cannot register lifecycle hook after architecture is Ready");
_lifecycleHooks.Add(hook);
return hook;
}
/// <summary>