internal static MarshalByRefObject CreateInstance(Type serverType)
{
RemotingProxy proxy1;
MarshalByRefObject obj1 = null;
ConstructorCallMessage message1 = null;
bool flag1 = ActivationServices.IsCurrentContextOK(serverType, (object[]) null, ref message1);
if (flag1 && !serverType.IsContextful)
{
return RemotingServices.AllocateUninitializedObject(serverType);
}
obj1 = (MarshalByRefObject) ActivationServices.ConnectIfNecessary(message1);
if (obj1 == null)
{
proxy1 = new RemotingProxy(serverType);
obj1 = (MarshalByRefObject) proxy1.GetTransparentProxy();
}
else
{
proxy1 = (RemotingProxy) RemotingServices.GetRealProxy(obj1);
}
proxy1.ConstructorMessage = message1;
if (!flag1)
{
ContextLevelActivator activator1 = new ContextLevelActivator();
activator1.NextActivator = message1.Activator;
message1.Activator = activator1;
return obj1;
}
message1.ActivateInContext = true;
return obj1;
}