[System.Security.SecurityCritical] // auto-generated internal virtual IMessageSink CreateServerObjectChain(MarshalByRefObject serverObj) { // a bare chain would just be the dispatcher sink IMessageSink serverObjectChain = new ServerObjectTerminatorSink(serverObj); // now loop over properties to add some real sinks. Object prop = null; int iSink = _numCtxProps; while (iSink-- > 0) { // see if this property wants to contribute a ServerObjectSink // we have to start chaining in the reverse order prop = _ctxProps[iSink]; IContributeObjectSink sink = prop as IContributeObjectSink; if (null != sink) { // yes, chain the sink ahead of the chain of sinks constructed so far. serverObjectChain = sink.GetObjectSink( serverObj, serverObjectChain); if (serverObjectChain == null) { throw new RemotingException( Environment.GetResourceString( "Remoting_Contexts_BadProperty")); } } } return serverObjectChain; }
internal IMessageSink CreateServerObjectSinkChain (MarshalByRefObject obj, bool forceInternalExecute) { IMessageSink objectSink = new StackBuilderSink (obj, forceInternalExecute); objectSink = new ServerObjectTerminatorSink (objectSink); objectSink = new Lifetime.LeaseSink (objectSink); if (context_properties != null) { // Contribute object sinks in reverse order for (int n = context_properties.Count-1; n >= 0; n--) { IContextProperty prop = (IContextProperty) context_properties[n]; IContributeObjectSink contributor = prop as IContributeObjectSink; if (contributor != null) objectSink = contributor.GetObjectSink (obj, objectSink); } } return objectSink; }
internal virtual IMessageSink CreateServerObjectChain(MarshalByRefObject serverObj) { IMessageSink nextSink = new ServerObjectTerminatorSink(serverObj); object obj2 = null; int index = this._numCtxProps; while (index-- > 0) { obj2 = this._ctxProps[index]; IContributeObjectSink sink2 = obj2 as IContributeObjectSink; if (sink2 != null) { nextSink = sink2.GetObjectSink(serverObj, nextSink); if (nextSink == null) { throw new RemotingException(Environment.GetResourceString("Remoting_Contexts_BadProperty")); } } } return nextSink; }