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()
本文地址:http://com.8s8s.com/it/it41092.htm