Пример #1
0
        /// <summary>
        /// 初始化新建一个 <see cref="KeyMessageNotification{T}"/> 类的实例对象。
        /// </summary>
        /// <param name="router">设置当前正在使用的消息路由实例对象。</param>
        public KeyMessageNotification(IMessageRouter router)
        {
            Identity = Guid.NewGuid();
            Router   = router;

            Router.Register <ObjectExtendible <T> >(p =>
            {
                var obj = p.GetObject <ObjectExtendible <T> >();

                if (obj.GetChange() == ObjectChangeType.Update.ToString())
                {
                    SetValue(obj.GetParameter <T>());
                }
                else
                {
                    SetValue(null);
                }

                Notify();
            }, Identity, filter: p => string.Equals(p.Tag.GetValueX("Key", string.Empty), Key));
        }