public static void Main () { RemotingConfiguration.Configure("Client.exe.config"); RemotableType type1 = new RemotableType(); type1.StringMethod(); }
对应的IL为:
.method public hidebysig static void **Main** () cil managed
{
.entrypoint
// Code Size: 24 byte(s)
.maxstack 1
.locals (
[RemotableType]RemotableType **type1** )
L_0000: ldstr "Client.exe.config"
L_0005: call void [mscorlib]System.Runtime.Remoting.RemotingConfiguration::Configure(string)
L_000a: newobj instance void [RemotableType]RemotableType::.ctor()
L_000f: stloc.0
L_0010: ldloc.0
L_0011: callvirt instance string [RemotableType]RemotableType::StringMethod()
L_0016: pop
L_0017: ret
}
newobj将会调用ActivationServices.IsCurrentContextOK()
callvirt将会调用RealProxy.PrivateInvoke()