mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 将 Context.GetModel<T>() 调用替换为 this.GetModel<T>() - 将 Context.GetSystem<T>() 调用替换为 this.GetSystem<T>() - 将 Context.GetUtility<T>() 调用替换为 this.GetUtility<T>() - 将 Context.SendCommand() 调用替换为 this.SendCommand() - 将 Context.SendQuery() 调用替换为 this.SendQuery() - 将 Context.SendEvent() 调用替换为 this.SendEvent() - 将 Context.RegisterEvent<T>() 调用替换为 this.RegisterEvent<T>()
38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
namespace GFramework.Core.Abstractions.controller;
|
||
|
||
/// <summary>
|
||
/// 控制器标记接口,用于标识控制器组件
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>
|
||
/// IController 是一个标记接口(Marker Interface),不包含任何方法或属性。
|
||
/// 它的作用是标识一个类是控制器,用于协调 Model、System 和 UI 之间的交互。
|
||
/// </para>
|
||
/// <para>
|
||
/// 架构访问 :控制器通常需要访问架构上下文。使用 [ContextAware] 特性
|
||
/// 自动生成上下文访问能力:
|
||
/// </para>
|
||
/// <code>
|
||
/// using GFramework.SourceGenerators.Abstractions.rule;
|
||
///
|
||
/// [ContextAware]
|
||
/// public partial class PlayerController : IController
|
||
/// {
|
||
/// public void Initialize()
|
||
/// {
|
||
/// // [ContextAware] 实现 IContextAware 接口,可使用扩展方法
|
||
/// var playerModel = this.GetModel<PlayerModel>();
|
||
/// var gameSystem = this.GetSystem<GameSystem>();
|
||
/// }
|
||
/// }
|
||
/// </code>
|
||
/// <para>
|
||
/// 注意:
|
||
/// </para>
|
||
/// <list type="bullet">
|
||
/// <item>必须添加 partial 关键字</item>
|
||
/// <item>[ContextAware] 特性会自动实现 IContextAware 接口</item>
|
||
/// <item>可使用 this.GetModel()、this.GetSystem() 等扩展方法访问架构</item>
|
||
/// </list>
|
||
/// </remarks>
|
||
public interface IController; |