Beispiel #1
0
 protected virtual void AddBeforeAOPHandle(string methodName, BeforeAOPHandle beforeHandle)
 {
     lock (this.m_BeforeHandles)
     {
         if (!m_BeforeHandles.Contains(methodName))
         {
             m_BeforeHandles.Add(methodName, beforeHandle);
         }
     }
 }
Beispiel #2
0
        protected virtual void AddBeforeAOPHandle(string methodName, BeforeAOPHandle beforeHandle)
        {
            SortedList beforeHandles;

            Monitor.Enter(beforeHandles = this.m_BeforeHandles);
            try
            {
                if (!this.m_BeforeHandles.Contains(methodName))
                {
                    this.m_BeforeHandles.Add(methodName, beforeHandle);
                }
            }
            finally
            {
                Monitor.Exit(beforeHandles);
            }
        }
Beispiel #3
0
        public IMessage SyncProcessMessage(IMessage msg)
        {
            IMethodCallMessage call         = msg as IMethodCallMessage;
            string             methodName   = call.MethodName.ToUpper();
            BeforeAOPHandle    beforeHandle = FindBeforeAOPHandle(methodName);

            if (beforeHandle != null)
            {
                beforeHandle(call);
            }
            IMessage             retMsg      = m_NextSink.SyncProcessMessage(msg);
            IMethodReturnMessage reply       = retMsg as IMethodReturnMessage;
            AfterAOPHandle       afterHandle = FindAfterAOPHandle(methodName);

            if (afterHandle != null)
            {
                afterHandle(reply);
            }
            return(retMsg);
        }
Beispiel #4
0
        public IMessage SyncProcessMessage(IMessage msg)
        {
            IMethodCallMessage methodCallMessage = msg as IMethodCallMessage;
            string             methodName        = methodCallMessage.MethodName.ToUpper();
            bool            flag            = this.FindbeforeAOPMethod(methodCallMessage);
            BeforeAOPHandle beforeAOPHandle = this.FindBeforeAOPHandle(methodName);

            if (beforeAOPHandle != null && flag)
            {
                beforeAOPHandle(methodCallMessage);
            }
            IMessage             message        = this.m_NextSink.SyncProcessMessage(msg);
            IMethodReturnMessage replyMsg       = message as IMethodReturnMessage;
            AfterAOPHandle       afterAOPHandle = this.FindAfterAOPHandle(methodName);

            if (afterAOPHandle != null && flag)
            {
                afterAOPHandle(replyMsg);
            }
            return(message);
        }