示例#1
0
        /// <summary>
        /// Called when a method is entered.
        /// </summary>
        /// <param name="m"></param>
        /// <param name="logOptions"></param>
        /// <returns></returns>
        internal LogMethodEntry LogMethodEnter(MethodInfo m, ServiceLogMethodOptions logOptions)
        {
            Debug.Assert(logOptions != 0);
            LogMethodEntry me = new LogMethodEntry();

            if ((logOptions & ServiceLogMethodOptions.Leave) == 0)
            {
                me.InitClose(++_nextLSN, _currentDepth, m);
                // Emits the "Created" event.
                EventHandler <LogEventArgs> h = EventCreated;
                if (h != null)
                {
                    h(_eventSender, me);
                }
            }
            else
            {
                me.InitOpen(++_nextLSN, _currentDepth++, m);
                // Emits the "Creating" event.
                EventHandler <LogEventArgs> h = EventCreating;
                if (h != null)
                {
                    h(_eventSender, me);
                }
            }
            return(me);
        }