System.Runtime.Remoting.Activation.ActivationServices.ActivateWithMessage()

王朝system·作者佚名  2006-01-09
宽屏版  字体: |||超大  

internal static object ActivateWithMessage(Type serverType, IMessage msg, ServerIdentity srvIdToBind, out Exception e)

{

object obj1 = null;

e = null;

obj1 = RemotingServices.AllocateUninitializedObject(serverType);

object obj2 = null;

if (serverType.IsContextful)

{

if (msg is ConstructorCallMessage)

{

obj2 = ((ConstructorCallMessage) msg).GetThisPtr();

}

else

{

obj2 = null;

}

obj2 = RemotingServices.Wrap((ContextBoundObject) obj1, obj2, false);

}

else

{

if (Thread.CurrentContext != Context.DefaultContext)

{

throw new RemotingException(Environment.GetResourceString("Remoting_Activation_Failed"));

}

obj2 = obj1;

}

IMessageSink sink1 = new StackBuilderSink(obj2);

IMethodReturnMessage message1 = (IMethodReturnMessage) sink1.SyncProcessMessage(msg);

if (message1.Exception == null)

{

if (serverType.IsContextful)

{

return RemotingServices.Wrap((ContextBoundObject) obj1);

}

return obj1;

}

e = message1.Exception;

return null;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有