RealProxy的PrivateInvoke方法在构造调用时的执行代码

执行

private void PrivateInvoke(ref MessageData msgData, int type)
{
IMessage message1 = null;
CallType type1 = (CallType) type;
IMessage message2 = null;
int num1 = -1;
RemotingProxy proxy1 = null;
////////////////////////
num1 = 0;
proxy1 = this as RemotingProxy;
ConstructorCallMessage message4 = null;
bool flag1 = false;
if (!this.IsRemotingProxy())
{
message4 = new ConstructorCallMessage(null, null, null, this.GetProxiedType());
}
else
{
message4 = proxy1.ConstructorMessage;
Identity identity1 = proxy1.IdentityObject;
if (identity1 != null)
{
flag1 = identity1.IsWellKnown();
}
}
if ((message4 == null) || flag1)
{
message4 = new ConstructorCallMessage(null, null, null, this.GetProxiedType());
message4.SetFrame(msgData);
message1 = message4;
if (flag1)
{
proxy1.ConstructorMessage = null;
if (message4.ArgCount != 0)
{
throw new RemotingException(Environment.GetResourceString("Remoting_Activation_WellKnownCTOR"));
}
}
message2 = new ConstructorReturnMessage((MarshalByRefObject) this.GetTransparentProxy(), null, 0, null, message4);
}
else
{
message4.SetFrame(msgData);
message1 = message4;
}
////////////////////////
ChannelServices.IncrementRemoteCalls();

if (message2 == null)
{
LogicalCallContext context1 = null;
Thread thread1 = Thread.CurrentThread;
context1 = thread1.GetLogicalCallContext();
this.SetCallContextInMessage(message1, num1, context1);
context1.PropagateOutgoingHeadersToMessage(message1);
message2 = this.Invoke(message1);
this.ReturnCallContextToThread(thread1, message2, num1, context1);
CallContext.GetLogicalCallContext().PropagateIncomingHeadersToCallContext(message2);
}
RealProxy.HandleReturnMessage(message1, message2);
////////////////////////
MarshalByRefObject obj1 = null;
IConstructionReturnMessage message7 = message2 as IConstructionReturnMessage;
if (message7 == null)
{
throw new RemotingException(Environment.GetResourceString("Remoting_Proxy_BadReturnTypeForActivation"));
}
ConstructorReturnMessage message8 = message7 as ConstructorReturnMessage;
if (message8 != null)
{
obj1 = (MarshalByRefObject) message8.GetObject();
if (obj1 == null)
{
throw new RemotingException(Environment.GetResourceString("Remoting_Activation_NullReturnValue"));
}
}
else
{
obj1 = (MarshalByRefObject) RemotingServices.InternalUnmarshal((ObjRef) message7.ReturnValue, this.GetTransparentProxy(), true);
if (obj1 == null)
{
throw new RemotingException(Environment.GetResourceString("Remoting_Activation_NullFromInternalUnmarshal"));
}
}
if (obj1 != ((MarshalByRefObject) this.GetTransparentProxy()))
{
throw new RemotingException(Environment.GetResourceString("Remoting_Activation_InconsistentState"));
}
if (this.IsRemotingProxy())
{
proxy1.ConstructorMessage = null;
}
////////////////////////
}

时间: 2024-08-02 09:30:52

RealProxy的PrivateInvoke方法在构造调用时的执行代码的相关文章

android:在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件?

问题描述 android:在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件? 如题,在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件? 解决方案 不明白干嘛,添加控件,无非就是先创建或渲染出一个view,然后通过addview加入到指定的容器中 解决方案二: 可控的话 先写在xml中设visible为gone. 需要的时候设置为visible 解决方案三: 不太清楚你的意思.如果就是添加界面的话,可以用两种方法,一种是楼上说的,可以

android 补间动画再次调用时不再执行

问题描述 android 补间动画再次调用时不再执行 我有一个动画效果,进入activity时第一次触发动画会执行,但是再次触发图片就不会再动了,为什么啊,怎么解决呢? 解决方案 因为你进入activity的时候执行了动画的运行逻辑,但是确实执行完毕了,单次执行的动画不会重复播放(除非你设置).你想要再次执行需要监听图片的onclick事件,然后在listener里面再执行动画 解决方案二: 你把你的代码贴出来这样大家会看的明白一些,就知道你的问题局提出在什么地方了,你这样说很难给你正确的答案

intellij idea-为什么idea在debug时,执行代码速度这么慢?该怎么设置

问题描述 为什么idea在debug时,执行代码速度这么慢?该怎么设置 调用个查询数据的方法都要10来秒,eclipse则是一两秒?idea该如何去设置来改变这种情况,不然debug时太慢了,执行下一个了还可以去喝杯茶回来才显示成功 解决方案 看看你在debug的时候是否在方法上加了断点,如果在方法上加了断点,那么运行时非常慢. 设置如下:http://zhidao.baidu.com/link?url=hY2wE1DUe1kYFoJkNQW4aXB-D9HoE96Z-s7HBBC2Z6dqQQ

hkkk-php如何调用c,执行代码啃你冷静本末586651咯做嗯哦哦

问题描述 php如何调用c,执行代码啃你冷静本末586651咯做嗯哦哦 想在php执行c,这个也忒不好弄了,骗人呀,54895155痛阿东今年冷漠

activity-当旋转移动设备时,onCreate方法被重复调用

问题描述 当旋转移动设备时,onCreate方法被重复调用 在Main Activity 里的 onCreate() 方法中调用一个 AsyncTask.在同一个 Activity 中,如果方向改变后,AsyncTask 被再次调用.如何调整程序来阻止 AsyncTask 被再次调用呢? public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.on

java-jacob c++里方法的类型是bstr ,为啥JAVA调用时老是出错

问题描述 jacob c++里方法的类型是bstr ,为啥JAVA调用时老是出错 [id(4)] HRESULT sayHello2([in] BSTR say, [out, retval] BSTR* result); ComThread.InitMTA(true); ActiveXComponent com = new ActiveXComponent("CLSID:FF90EFCA-0856-4159-A9CC-0E7BBC317554") ; Dispatch disp = (

java基础-JAVA equals方法被调用时字符串和对象的顺序

问题描述 JAVA equals方法被调用时字符串和对象的顺序 如图所示 equals方法中对象在前还是字符串在前? 是标准还是建议? 解决方案 一般建议是字符串在前,这样能够避免当你的对象为[null] 的时候,报空指针异常. 解决方案二: 字符串在前,避免当你的对象为[null] 的时候,报空指针异常

android-用fatjar打包的Android项目(有调用第三方jar包),调用时找不到第三方jar包的方法

问题描述 用fatjar打包的Android项目(有调用第三方jar包),调用时找不到第三方jar包的方法 用fatjar打包的Android项目(有调用第三方jar包),调用里面的方法时找不到第三方jar包的方法,这是什么问题呢?下面是报的错误,在网上找了很多方法也没有解决: 解决方案 Android项目打第三方jar包

java,main方法中可以运行,为啥被调用时不起作用,

问题描述 java,main方法中可以运行,为啥被调用时不起作用, public class Test { // public static void main(String[] args){ public static void sendMail(){ //这个类主要是设置邮件 MailSenderInfo mailInfo = new MailSenderInfo(); .............. 之前用main方法运行时,(就是鼠标右键运行那种),是可以的, 为啥把方法换成sendMai