Skip to content

消息系统 API

ChangeMessenger

全局消息中心,负责事件的发布和订阅。

静态属性

属性类型说明
EnableWeakMessengerbool启用弱引用消息
EnableRxStreambool启用 Rx 流
EnableMetricsbool启用性能指标
UseSynchronousPublishbool使用同步发布

调度器注册

csharp
// 注册 UI 调度器
static void RegisterDispatcher(string envName);

// 注册线程池调度器
static void RegisterThreadPool(string envName);

// 注册专用线程调度器
static void RegisterDedicatedThread(string envName, string threadName);

// 注册 Nito.AsyncEx 调度器
static void RegisterNitoAsyncContext(
    string envName,
    Func<Task> runAsync,
    Func<Action, Task> postAsync);

发布方法

csharp
// 发布到指定环境
static void Publish(BubblingChange change, string envName = null);

// 发布到默认环境
static void PublishToDefaultEnv(BubblingChange change);

// 发布到命名环境
static void PublishToNamedEnv(BubblingChange change, string envName);

订阅方法

csharp
// 获取 Rx 流
static IObservable<BubblingChange> AsObservable(string envName = null);

// 获取带节流的 Rx 流
static IObservable<BubblingChange> AsThrottledObservable(
    TimeSpan? throttleTime = null,
    string envName = null);

过滤器管理

csharp
// 注册过滤器
static void RegisterFilter(string name, IChangeEventFilter filter);

// 移除过滤器
static void RemoveFilter(string name);

性能监控

csharp
// 获取性能指标
static PerformanceMetrics GetPerformanceMetrics();

// 获取事件类型统计
static Dictionary<NodeChangeKind, long> GetEventTypeStatistics();

BubblingChangeMessage

消息对象,使用对象池管理。

静态方法

csharp
// 从池中租用
static BubblingChangeMessage Rent(BubblingChange change);

实例方法

csharp
// 归还到池中
void Return();

// 设置值
void SetValue(BubblingChange change);

BubblingChange

变更事件结构。

属性

属性类型说明
KindNodeChangeKind变更类型
NodeNamestring节点名称
PropertyNamestring?属性名称
Pathstring完整路径
OldValueobject?旧值
NewValueobject?新值
TimestampDateTime时间戳

NodeChangeKind

变更类型枚举。

说明
PropertyChanged属性值变更
CollectionAdd集合添加元素
CollectionRemove集合移除元素
CollectionReplace集合替换元素
CollectionClear集合清空
ChildAttached子节点附加
ChildDetached子节点分离

基于 MIT 许可发布