private void ConfigureServerComponent(RemotingStrategy server, Type type, ComponentModel model)
{
if (server == RemotingStrategy.None)
{
return;
}
var uri = ConstructServerURI(server, model);
switch (server)
{
case RemotingStrategy.Singleton:
{
CheckURIIsNotNull(uri, model.Name);
RemotingConfiguration.RegisterWellKnownServiceType(type, uri, WellKnownObjectMode.Singleton);
break;
}
case RemotingStrategy.SingleCall:
{
CheckURIIsNotNull(uri, model.Name);
RemotingConfiguration.RegisterWellKnownServiceType(type, uri, WellKnownObjectMode.SingleCall);
break;
}
case RemotingStrategy.ClientActivated:
{
RemotingConfiguration.RegisterActivatedServiceType(type);
break;
}
case RemotingStrategy.Component:
{
localRegistry.AddComponentEntry(model);
break;
}
case RemotingStrategy.RecoverableComponent:
{
CheckURIIsNotNull(uri, model.Name);
ValidateLifeStyle(model);
localRegistry.AddComponentEntry(model);
model.ExtendedProperties.Add("remoting.uri", uri);
model.ExtendedProperties.Add("remoting.afinity", true);
model.CustomComponentActivator = typeof(RemoteMarshallerActivator);
break;
}
}
}