protected override void OnPreProcess(object sender,PreProcessEventArgs args)
        {
            ThreadPriority oldPriority = Thread.CurrentThread.Priority;
            this.SaveSettingForPostProcess ("ThreadPriority",oldPriority);

            OutputDebugMessage("Setting thread priority from " + oldPriority + " to " + priority);
            Thread.CurrentThread.Priority = priority;
        }
 protected override void OnPreProcess(object sender,PreProcessEventArgs args)
 {
     for (int i = 0; i < howManyTimes-1; i++)
     {
         OutputDebugMessage("Executing method #" + i);
         this.invokeDeclaringMethod(args);
     }
     OutputDebugMessage("Executing method #" + (howManyTimes-1));
 }
        protected override void OnPreProcess(object sender,PreProcessEventArgs args)
        {
            try
            {
                ServiceConfig config = new ServiceConfig();
                config.Transaction=TransactionOption.RequiresNew;
                config.TrackingAppName="Application Unit Tests";
                config.TransactionDescription="Application Unit Tests Transaction";
                config.TransactionTimeout=10000;

                OutputDebugMessage("ENTERING transaction context on method: " + args.MethodCallMessage.MethodBase.Name);

                ServiceDomain.Enter(config);
                OutputDebugMessage("ENTRED transaction context on method: " + args.MethodCallMessage.MethodBase.Name);

            }
            catch(Exception e)
            {
                OutputDebugMessage("Could not enter into a new transaction:\n" + e.ToString());
            }
        }
        protected override void OnPreProcess(object sender, PreProcessEventArgs args)
        {
            int threadID = AppDomain.GetCurrentThreadId();
            if(runningThreads[threadID]!=null
                || runningThreads.Count>0)
            {
                OutputDebugMessage("skipping method run from inside previous runner...");
                return ;
            }
            else
            {
                runningThreads[threadID]="some not null value";
            }

            OutputDebugMessage(threadID + ": Preparing to run method on separate thread and join it afterwards...");
            CrossThreadRunner runner  = new CrossThreadRunner(args.TargetObject,args.MethodCallMessage.MethodBase,args.MethodCallMessage.Args);
            runner.Run();
            OutputDebugMessage("Ran it on a separate thread...skipping actual method invocation on current thread");

            this.FlagCurrentMethodToBeSkipped(args);
        }
 protected abstract void OnPreProcess(object sender, PreProcessEventArgs args);
 public void PreProcess(object sender,PreProcessEventArgs args)
 {
     OnPreProcess(sender,args);
 }
 protected override void OnPreProcess(object sender, PreProcessEventArgs args)
 {
     items[name] = data;
 }
        private void PreProcess(ref IMethodCallMessage callMessage)
        {
            ArrayList attrs = getMethodCallCustomAttributes(callMessage);
            ArrayList newCallMessages = new ArrayList();

            for(int i=0;i<attrs.Count;i++)
            {
                PreProcessEventArgs args = new PreProcessEventArgs(m_target,callMessage);
                ((BaseProcessingAttribute)attrs[i]).PreProcess(this,args);
                //currently handles only a case where one attribute changes the
                //value of an inside parameter
                if(args.HasNewParameterValues)
                {
                    //this should contain a MEthodCallMEssageWrapper object with new parameter values
                    newCallMessages.Add(args.MethodCallMessage);
                }
            }

            if(newCallMessages.Count==1)
            {
                callMessage = (IMethodCallMessage) newCallMessages[0];
            }
            if(newCallMessages.Count>1)
            {
                combineMultipleNewParamValuesIntoNewMessage (newCallMessages, ref callMessage);
            }
        }
 protected override void OnPreProcess(object sender,PreProcessEventArgs args)
 {
     this.FlagCurrentMethodToBeSkipped(args);
     OutputDebugMessage("Skipping method " + args.MethodCallMessage.MethodName);
 }
 protected override void OnPreProcess(object sender,PreProcessEventArgs args)
 {
     OutputDebugMessage("ENTERING method: " + args.MethodCallMessage.MethodBase.Name);
 }