/// <summary> /// 根据指定的键更新缓存项的值。 /// </summary> /// <typeparam name="T">待更新的缓存项的类型。</typeparam> /// <param name="router">包含有缓存项通知订阅的消息路由实例对象。</param> /// <param name="key">缓存项的键。</param> /// <param name="obj">待更新的缓存项目标值:<c>null</c> 表示清除缓存项。</param> /// <returns>一个表示异步操作状态的结果实例对象。</returns> public static IMessageRouter UpdateCache <T>(this IMessageRouter router, string key, T obj) { var objectChanged = new ObjectExtendible <T>(); objectChanged.SetChange(ObjectChangeType.Update); objectChanged.SetParameter(obj); objectChanged.Tag["Key"] = key; router.Publish(objectChanged); return(router); }
/// <summary> /// 向各个订阅的客户端发布消息。 /// </summary> /// <typeparam name="TMessage">待发送消息的类型。</typeparam> /// <param name="obj">一个消息路由扩展接口的实例对象。</param> /// <param name="msg">待发送的消息实例对象。</param> /// <returns>发布管道的执行上下文。</returns> public static EventContext Publish <TMessage>(this IMessageRouter obj, TMessage msg) { return(obj.Publish(typeof(TMessage).AssemblyQualifiedName, msg)); }