public virtual IServiceResponse ProcessRequest(IServiceRequest incoming)
{
try
{
SetRequestContext(RequestEncoding.Binary);
ServiceDefinition service = null;
// find service.
if (!SupportedServices.TryGetValue(incoming.TypeId, out service))
{
throw new ServiceResultException(StatusCodes.BadServiceUnsupported, Utils.Format("'{0}' is an unrecognized service identifier.", incoming.TypeId));
}
// invoke service.
return service.Invoke(incoming);
}
catch (Exception e)
{
// create fault.
return CreateFault(incoming, e);
}
}
#endregion