Exemple #1
0
        /// <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);
        }
Exemple #2
0
 /// <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));
 }