コード例 #1
0
 public IMessage SyncProcessMessage(IMessage msg)
 {
     try
     {
         LogicalCallContext oldcctx = Message.PropagateCallContextFromMessageToThread(msg);
         if (this._delegate != null)
         {
             this._delegate();
         }
         else
         {
             CallBackHelper       @object = new CallBackHelper(this._eeData, true, this._targetDomainID);
             CrossContextDelegate crossContextDelegate = new CrossContextDelegate(@object.Func);
             crossContextDelegate();
         }
         Message.PropagateCallContextFromThreadToMessage(msg, oldcctx);
     }
     catch (Exception e)
     {
         ReturnMessage returnMessage = new ReturnMessage(e, new ErrorMessage());
         returnMessage.SetLogicalCallContext((LogicalCallContext)msg.Properties[Message.CallContextKey]);
         return(returnMessage);
     }
     return(this);
 }
コード例 #2
0
        private async Task HandleCallback(Update update)
        {
            if (update.Type == UpdateType.CallbackQuery)
            {
                var identifier = GetUserId(update);
                var caster     = (int)CallBackHelper.Caster(update.CallbackQuery.Data);
                switch ((CallBack)caster)
                {
                case CallBack.Back:
                    await navigator.TryPopPageAsync(identifier, update, NavigationType.PageToPage);

                    return;

                case CallBack.RootPage:
                    await navigator.PopToRootAsync(identifier, update);

                    return;
                }

                await ResolveCallBackState(identifier, update, update.CallbackQuery.Data);
            }
        }
コード例 #3
0
ファイル: Message.cs プロジェクト: sjyanxin/WPFSource
        [System.Security.SecurityCritical]  // auto-generated
        public IMessage SyncProcessMessage(IMessage msg)
        {
            Contract.Assert( 
                Thread.CurrentContext.InternalContextID == _targetCtxID,
                "Transition message routed to wrong context"); 
 
            try
            { 
                LogicalCallContext oldcctx = Message.PropagateCallContextFromMessageToThread(msg);
                if (_delegate != null)
                {
                    _delegate(); 
                }
                else 
                { 
                    // This is the cross appdomain case, so we need to construct
                    //   the delegate and call on it. 
                    CallBackHelper cb = new CallBackHelper(
                                            _eeData,
                                            true /*fromEE*/,
                                            _targetDomainID); 
                    CrossContextDelegate ctxDel = new CrossContextDelegate(cb.Func);
                    ctxDel(); 
                } 
                Message.PropagateCallContextFromThreadToMessage(msg, oldcctx);
            } 

            catch (Exception e)
            {
                ReturnMessage retMsg = new ReturnMessage(e, new ErrorMessage()); 
                retMsg.SetLogicalCallContext(
                    (LogicalCallContext) msg.Properties[Message.CallContextKey]); 
                return retMsg; 
            }
 
            return this;
        }