46 lines
1.6 KiB
C#
46 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|