示例#1
0
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public MethodSideEffectsInstance(IList <InvocationHandler> sideEffects, SideEffectInvocationHandlerResult resultInvocationHandler, ProxyReferenceInvocationHandler proxyHandler, InvocationHandler invoker)
 {
     this.sideEffects             = sideEffects;
     this.resultInvocationHandler = resultInvocationHandler;
     this.proxyHandler            = proxyHandler;
     this.invoker = invoker;
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public MethodSideEffectsInstance(IList<InvocationHandler> sideEffects, SideEffectInvocationHandlerResult resultInvocationHandler, ProxyReferenceInvocationHandler proxyHandler, InvocationHandler invoker)
 {
     this.sideEffects = sideEffects;
     this.resultInvocationHandler = resultInvocationHandler;
     this.proxyHandler = proxyHandler;
     this.invoker = invoker;
 }
 //[DebuggerStepThrough]
 ////[DebuggerHidden]
 public MethodSideEffectsInstance NewInstance(ModuleInstance moduleInstance, InvocationHandler invoker)
 {
     var proxyHandler = new ProxyReferenceInvocationHandler();
     var result = new SideEffectInvocationHandlerResult();
     var sideEffects = new List<InvocationHandler>(this.sideEffectModels.Count);
     foreach (MethodSideEffectModel sideEffectModel in this.sideEffectModels)
     {
         object sideEffect = sideEffectModel.NewInstance(moduleInstance, result, proxyHandler);
         if (sideEffectModel.IsGeneric)
         {
             sideEffects.Add((InvocationHandler)sideEffect);
         }
         else
         {
             sideEffects.Add(new TypedFragmentInvocationHandler(sideEffect));
         }
     }
     return new MethodSideEffectsInstance(sideEffects, result, proxyHandler, invoker);
 }
        //[DebuggerStepThrough]
        ////[DebuggerHidden]
        public MethodSideEffectsInstance NewInstance(ModuleInstance moduleInstance, InvocationHandler invoker)
        {
            var proxyHandler = new ProxyReferenceInvocationHandler();
            var result       = new SideEffectInvocationHandlerResult();
            var sideEffects  = new List <InvocationHandler>(this.sideEffectModels.Count);

            foreach (MethodSideEffectModel sideEffectModel in this.sideEffectModels)
            {
                object sideEffect = sideEffectModel.NewInstance(moduleInstance, result, proxyHandler);
                if (sideEffectModel.IsGeneric)
                {
                    sideEffects.Add((InvocationHandler)sideEffect);
                }
                else
                {
                    sideEffects.Add(new TypedFragmentInvocationHandler(sideEffect));
                }
            }
            return(new MethodSideEffectsInstance(sideEffects, result, proxyHandler, invoker));
        }