System.Runtime.Remoting.Identity.RaceSetEnvoyChain C# (CSharp) Méthode

RaceSetEnvoyChain() private méthode

private RaceSetEnvoyChain ( IMessageSink envoyChain ) : IMessageSink
envoyChain IMessageSink
Résultat IMessageSink
        internal IMessageSink RaceSetEnvoyChain(
                    IMessageSink envoyChain)
        {
            if (_envoyChain == null)
            {
                Interlocked.CompareExchange(
                                ref _envoyChain,
                                envoyChain,
                                null);
            }
            return (IMessageSink) _envoyChain;
        }

Usage Example

        } // CreateChannelSinks
 
        internal static void SetEnvoyAndChannelSinks(Identity idObj,
                                                    IMessageSink chnlSink, 
                                                    IMessageSink envoySink) 
        {
            Message.DebugOut("Setting up envoy and channel sinks \n"); 
            BCLDebug.Assert(null != idObj,"null != idObj");

            // Decide if we need to set the envoy sink chain
            if (null == idObj.ChannelSink) 
            {
                if (null != chnlSink) 
                { 
                    idObj.RaceSetChannelSink(chnlSink);
                } 
            }

            // Decide if we need to set the envoy sink chain
            if (null == idObj.EnvoyChain) 
            {
                if (null != envoySink) 
                { 
                    idObj.RaceSetEnvoyChain(envoySink);
                } 
                else
                {
                    throw new RemotingException(
                        String.Format( 
                            CultureInfo.CurrentCulture, Environment.GetResourceString(
                                "Remoting_BadInternalState_FailEnvoySink"))); 
                } 
            }
        } 
All Usage Examples Of System.Runtime.Remoting.Identity::RaceSetEnvoyChain