public static void InvokeAsync <T>(string className, string methodName, object[] args, bool enableUnderFlowInspection, AsyncCallback <T> callback)
{
var responder = new Responder <T>(response =>
{
if (callback != null)
{
callback.ResponseHandler.Invoke(response);
}
}, fault =>
{
var backendlessFault = new BackendlessFault(fault);
if (callback != null)
{
callback.ErrorHandler.Invoke(backendlessFault);
}
else
{
throw new BackendlessException(backendlessFault);
}
});
try
{
ResponseThreadConfigurator responseConfig = null;
if (enableUnderFlowInspection)
{
responseConfig = new ResponseThreadConfigurator(SetupUnderFlowListener);
}
client.Invoke <T>(className, methodName, args, null, HeadersManager.GetInstance().Headers, responder, responseConfig);
}
catch (System.Exception ex)
{
var backendlessFault = new BackendlessFault(ex.Message);
if (callback != null)
{
callback.ErrorHandler.Invoke(backendlessFault);
}
throw new BackendlessException(backendlessFault);
}
}