AbstractSubmodule¶
- 种类:
abstract class - 命名空间:
Runestone.AesirArchitecture - 程序集:
Runestone.AesirArchitecture
继承链: System.Object → AbstractSubmodule
实现接口: Runestone.AesirArchitecture.IContextHolder,Runestone.AesirArchitecture.ICanSetContext,Runestone.AesirArchitecture.ICanInitialize,System.IDisposable
声明¶
[Serializable]
public abstract class AbstractSubmodule : Runestone.AesirArchitecture.IContextHolder,
Runestone.AesirArchitecture.ICanSetContext,
Runestone.AesirArchitecture.ICanInitialize,
System.IDisposable
子模块基类。持有上下文引用,通过 OnInitialize 和 OnDispose 管理生命周期。 Model 和 Service 的公共逻辑统一在此实现。
备注
作为 AbstractModel 和 AbstractService 的公共基类, 统一管理上下文引用和生命周期。上下文通过显式接口实现 SetContext 注入, 供子类经由能力扩展方法(如 GetModel
属性¶
| 名称 | 描述 |
|---|---|
Initialized |
是否已初始化(只读) |
Initialized¶
是否已初始化(只读)
备注
由 Initialize 在调用 OnInitialize 之后设为 true; Dispose 释放后重置为 false——已释放的模块不再自称已初始化, 防止动态替换场景下旧实例的初始化状态产生误导。
方法¶
声明的方法
| 名称 | 描述 |
|---|---|
Dispose() |
释放资源,触发 OnDispose |
OnDispose() |
释放时的清理逻辑,子类可覆写 |
OnInitialize() |
初始化逻辑,子类可选覆写(默认空实现)。 |
继承的方法
| 名称 | 描述 | 声明类型 |
|---|---|---|
GetType() |
— | object |
Equals(object) |
— | object |
GetHashCode() |
— | object |
ToString() |
— | object |
MemberwiseClone() |
— | object |
Finalize() |
— | object |
Dispose()¶
释放资源,触发 OnDispose
备注
先调用 OnDispose 执行子类清理逻辑,随后断开上下文引用并将 Initialized 重置为 false(重置语义见该属性说明)。
OnDispose()¶
释放时的清理逻辑,子类可覆写
备注
默认空实现。子类覆写此方法以执行清理逻辑,例如取消订阅、释放资源或保存状态。 此方法在 Dispose 中被调用,执行完毕后上下文引用将被清空。
OnInitialize()¶
初始化逻辑,子类可选覆写(默认空实现)。
备注
子类按需覆写此方法以执行初始化逻辑,例如创建 ObservableValue{T}、 订阅事件或加载持久化数据;无初始化需求的子类可不覆写(默认空实现)。 此方法在 Initialize 中被调用, 调用完成后 Initialized 自动置为 true。 区别于 AbstractCommand.OnExecute / AbstractQuery.OnExecute(abstract,子类必须实现)—— 本方法为 virtual 空实现,覆写是可选的。
Additional Notes¶
首个
## Additional Notes是增量生成文档标识符,请勿修改标题级别和内容!本文档由Script Doc Generator辅助生成。