示例#1
0
        public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink)
        {
            if (_context.HasDynamicSinks || Context.HasGlobalDynamicSinks)
            {
                Context.NotifyGlobalDynamicSinks(true, msg, true, true);
                _context.NotifyDynamicSinks(true, msg, true, true);

                // replySink is null when calling a one way method
                if (replySink != null)
                {
                    replySink = new ClientContextReplySink(_context, replySink);
                }
            }

                        #if !DISABLE_REMOTING
            Identity     identity = RemotingServices.GetMessageTargetIdentity(msg);
            IMessageCtrl res      = identity.ChannelSink.AsyncProcessMessage(msg, replySink);

            if (replySink == null && (_context.HasDynamicSinks || Context.HasGlobalDynamicSinks))
            {
                Context.NotifyGlobalDynamicSinks(false, msg, true, true);
                _context.NotifyDynamicSinks(false, msg, true, true);
            }
            return(res);
                        #else
            return(null);
                        #endif
        }
		public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink)
		{
			if (this._context.HasDynamicSinks || Context.HasGlobalDynamicSinks)
			{
				Context.NotifyGlobalDynamicSinks(true, msg, true, true);
				this._context.NotifyDynamicSinks(true, msg, true, true);
				if (replySink != null)
				{
					replySink = new ClientContextReplySink(this._context, replySink);
				}
			}
			Identity messageTargetIdentity = RemotingServices.GetMessageTargetIdentity(msg);
			IMessageCtrl result = messageTargetIdentity.ChannelSink.AsyncProcessMessage(msg, replySink);
			if (replySink == null && (this._context.HasDynamicSinks || Context.HasGlobalDynamicSinks))
			{
				Context.NotifyGlobalDynamicSinks(false, msg, true, true);
				this._context.NotifyDynamicSinks(false, msg, true, true);
			}
			return result;
		}
		public IMessageCtrl AsyncProcessMessage (IMessage msg, IMessageSink replySink)
		{
			if (_context.HasDynamicSinks || Context.HasGlobalDynamicSinks)
			{
				Context.NotifyGlobalDynamicSinks (true, msg, true, true);
				_context.NotifyDynamicSinks (true, msg, true, true);

				// replySink is null when calling a one way method
				if (replySink != null) replySink = new ClientContextReplySink (_context, replySink);
			}
			Identity identity = RemotingServices.GetMessageTargetIdentity (msg);
			IMessageCtrl res = identity.ChannelSink.AsyncProcessMessage (msg, replySink);

			if (replySink == null && (_context.HasDynamicSinks || Context.HasGlobalDynamicSinks))
			{
				Context.NotifyGlobalDynamicSinks (false, msg, true, true);
				_context.NotifyDynamicSinks (false, msg, true, true);
			}
			return res;
		}