using System; using System.Runtime.Remoting.Contexts; using System.Runtime.Remoting.Messaging; namespace System.Runtime.Remoting { // Token: 0x02000452 RID: 1106 internal class SingleCallIdentity : ServerIdentity { // Token: 0x06002AA7 RID: 10919 RVA: 0x0008A3F0 File Offset: 0x000885F0 public SingleCallIdentity(string objectUri, Context context, Type objectType) : base(objectUri, context, objectType) { } // Token: 0x06002AA8 RID: 10920 RVA: 0x0008A3FC File Offset: 0x000885FC public override IMessage SyncObjectProcessMessage(IMessage msg) { MarshalByRefObject marshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(this._objectType, true); if (marshalByRefObject.ObjectIdentity == null) { marshalByRefObject.ObjectIdentity = this; } IMessageSink messageSink = this._context.CreateServerObjectSinkChain(marshalByRefObject, false); IMessage message = messageSink.SyncProcessMessage(msg); if (marshalByRefObject is IDisposable) { ((IDisposable)marshalByRefObject).Dispose(); } return message; } // Token: 0x06002AA9 RID: 10921 RVA: 0x0008A45C File Offset: 0x0008865C public override IMessageCtrl AsyncObjectProcessMessage(IMessage msg, IMessageSink replySink) { MarshalByRefObject marshalByRefObject = (MarshalByRefObject)Activator.CreateInstance(this._objectType, true); IMessageSink messageSink = this._context.CreateServerObjectSinkChain(marshalByRefObject, false); if (marshalByRefObject is IDisposable) { replySink = new DisposerReplySink(replySink, (IDisposable)marshalByRefObject); } return messageSink.AsyncProcessMessage(msg, replySink); } } }