public void InvokeServiceHandler(Message request, Message response, HttpSessionState session, HttpResponse httpresponse)
{
if (request.Type.Equals(this.Request))
{
try
{
Message temp_response = response;
Object[] parameters = new Object[] { request, temp_response };
Object declaringTypeInstance = Activator.CreateInstance(this.MethodInfo.DeclaringType);
this.MethodInfo.Invoke(declaringTypeInstance, parameters);
temp_response = (Message)parameters[1];
temp_response.Type = this.Response;
temp_response.Scope = request.Scope;
temp_response.Version = request.Version;
temp_response.RequestDetails = request.RequestDetails;
Logger.Instance.Debug("Invoked service for request: " + request.Type);
Dispatcher.Instance.EnqueueOutgoingMessage(temp_response, session.SessionID);
}
catch (Exception e)
{
String err = "";
err+="Exception while invoking service handler - " + this.MethodInfo.Name + " in " + this.MethodInfo.DeclaringType.Name + "\n";
err += "Request Message - " + request.Type + "\n";
err += "Response Message - " + response.Type + "\n";
err += "Message - " + e.Message + "\n";
err += "Stacktrace - " + e.StackTrace + "\n";
Logger.Instance.Error(err);
}
}
}