public void HandleServiceCall(string serviceName, string contentType, TextReader input, TextWriter output) { JsonSerializer ser = new JsonSerializer(); ser.TypeNameHandling = TypeNameHandling.Objects; object request = null; object resp = null; if (!string.IsNullOrEmpty(serviceName)) { var si = _serviceDispatcher.GetServiceInfo(serviceName); request = ser.Deserialize(input, si.RequestType); resp = _serviceDispatcher.CallService(serviceName, request); } else { request = ser.Deserialize(new JsonTextReader(input)); resp = _serviceDispatcher.CallService(request); } ser.Serialize(output, resp); }
public object CallService(string serviceName, object request, Type responseType) { ServiceCallContext.Current = new ServiceCallContext { Headers = _h, User = System.Threading.Thread.CurrentPrincipal }; try { return(_dispatcher.CallService(serviceName, request)); } finally { ServiceCallContext.Current = null; } }