示例#1
0
 private void IntializeForInterception(IInterceptionOption[] interceptionOptions)
 {
     // flow lifetime is bound to message lifetime, GiopClientRequest is only a wrapper around message and
     // can be recreated during message lifetime.
     m_interceptionFlow =
         (ClientRequestInterceptionFlow)SimpleGiopMsg.GetInterceptionFlow(m_requestMessage);
     if (m_interceptionFlow == null)
     {
         ClientRequestInterceptor[] interceptors =
             OrbServices.GetSingleton().InterceptorManager.GetClientRequestInterceptors(interceptionOptions);
         if (interceptors.Length == 0)
         {
             m_interceptionFlow = new ClientRequestInterceptionFlow();
         }
         else
         {
             m_interceptionFlow = new ClientRequestInterceptionFlow(interceptors);
         }
         SimpleGiopMsg.SetInterceptionFlow(m_requestMessage, m_interceptionFlow);
     }
     if (m_interceptionFlow.NeedsRequestInfo())
     {
         // optimization: needs not be created, if non-intercepted.
         m_clientRequestInfo = new ClientRequestInfoImpl(this);
     }
 }
示例#2
0
        /// <summary>
        /// updates the picurrent from the thread scope PICurrent
        /// </summary>
        internal void SetRequestPICurrentFromThreadScopeCurrent()
        {
            PICurrentImpl piCurrent = OrbServices.GetSingleton().PICurrentManager.CreateRequestScopeFromThreadScope();

            SimpleGiopMsg.SetPICurrent(m_requestMessage, piCurrent);
        }