跳转至

AbstractContext<T>

介绍

  • 种类: abstract class
  • 所在程序集: Runestone.AesirArchitecture
  • 所在命名空间: Runestone.AesirArchitecture
[Serializable]
public abstract class AbstractContext<T> : Runestone.AesirArchitecture.IContext, 
System.IDisposable where T : new(), Runestone.AesirArchitecture.AbstractContext<T>

注释

  • 上下文基类。纯 C# 实现,不依赖 MonoBehaviour。 子类在 Configure 中注册 Model 和 Service,通过 Interface 获取全局单例。

方法

所有方法签名总览

方法完整签名
public IEnumerable<IModel> GetAllModels()
public IEnumerable<IService> GetAllServices()
public TModel GetModel<TModel>()
public TService GetService<TService>()
public Type GetType()
public virtual bool Equals(object obj)
public virtual int GetHashCode()
public virtual string ToString()
public void Dispose()
public void Initialize()
public void RegisterModel<TModel>(TModel model)
public void RegisterService<TService>(TService service)
protected abstract void Configure()
protected object MemberwiseClone()
protected virtual void Finalize()
protected virtual void OnDispose()

声明的普通方法

普通方法名称 注释
public IEnumerable<IModel> GetAllModels 获取所有已注册的 Model 列表
public IEnumerable<IService> GetAllServices 获取所有已注册的 Service 列表
public TModel GetModel<TModel> 获取已注册的 Model。
public TService GetService<TService> 获取已注册的 Service。
public void Dispose 释放资源。逆序销毁 Service 和 Model,清空容器。
public void Initialize 统一初始化。调用 Configure 注册模块后,按注册顺序依次初始化 Model 和 Service。 开发者需保证注册顺序满足依赖关系——被依赖的模块先注册。运行时通过 GetModel / GetService 获取未注册模块会抛出异常。
public void RegisterModel<TModel> 注册 Model 并绑定上下文。 若该类型已注册,旧实例会被 Dispose 后再覆盖,避免事件订阅等资源泄漏。
public void RegisterService<TService> 注册 Service 并绑定上下文。 若上下文已完成统一初始化,则立即初始化该 Service。若该类型已注册,旧实例会被 Dispose 后再覆盖,避免资源泄漏。
protected abstract void Configure 配置上下文模块,子类在此注册 Model 和 Service。
protected virtual void OnDispose 子类可选覆写,在释放前执行自定义清理

继承的普通方法

普通方法名称 注释 声明方法的类
public Type GetType System.Object
public virtual bool Equals System.Object
public virtual int GetHashCode System.Object
public virtual string ToString System.Object
protected object MemberwiseClone System.Object
protected virtual void Finalize System.Object

属性

声明的属性

属性签名 注释
public bool Initialized { get; private set; } 是否已初始化(只读)
public static IContext Interface { get; } 获取当前上下文类型的单例接口实例。首次访问时自动创建并初始化。

Additional Notes

首个 ## Additional Notes 是增量生成文档标识符,请勿修改标题级别和内容!本文档由 Aesir Inspector 辅助生成。