public static T RunRpcAndGetReply <T>(RpcGenericRequestInfo requestInfo, string serverName, int timeoutInMSec) where T : class
        {
            RpcGenericReplyInfo replyInfo = null;

            AmRpcClientHelper.RunRpcOperation(AmRpcOperationHint.GenericRpc, serverName, new int?(timeoutInMSec), delegate(AmRpcClient rpcClient, string rpcServerName)
            {
                ExTraceGlobals.ActiveMonitoringRpcTracer.TraceDebug <string>(0L, "GenericRequest(): Now making GenericRequest RPC to server {0}.", serverName);
                return(rpcClient.GenericRequest(requestInfo, out replyInfo));
            });
            return(SerializationServices.Deserialize <T>(replyInfo.AttachedData));
        }