public static object GetObjectFromJSON(string json, DataContractsEnum contract)
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
              if (contract == DataContractsEnum.ServiceCatalog)
              {
            ServiceCatalog serviceCatalogDataContract = javaScriptSerializer.Deserialize<ServiceCatalog>(json);
            return serviceCatalogDataContract;
              }
              else if (contract == DataContractsEnum.FeatureLayerAttributes)
              {
            FeatureLayerAttributes featLyrAttrDataContract = null;

            try
            {
              featLyrAttrDataContract = javaScriptSerializer.Deserialize<FeatureLayerAttributes>(json);
            }
            catch { }
            return featLyrAttrDataContract;
              }
              else if (contract == DataContractsEnum.FeatureEditsResponse)
              {
            FeatureEditsResponse addFeatDataContract = javaScriptSerializer.Deserialize<FeatureEditsResponse>(json);
            return addFeatDataContract;
              }
              else if (contract == DataContractsEnum.FeatureServiceNameAvailability)
              {
            FeatureServiceNameAvailability isAvailable = javaScriptSerializer.Deserialize<FeatureServiceNameAvailability>(json);
            return isAvailable;
              }
              else if (contract == DataContractsEnum.UserOrganizationContent)
              {
            UserOrganizationContent userContent = javaScriptSerializer.Deserialize<UserOrganizationContent>(json);
            return userContent;
              }
              else if (contract == DataContractsEnum.GeometryResponse)
              {
            GeometryResponse geometryResponse = javaScriptSerializer.Deserialize<GeometryResponse>(json);
            return geometryResponse;
              }
              else
              {
            FeatureQueryResponse featureQueryDataContract = javaScriptSerializer.Deserialize<FeatureQueryResponse>(json);
            return featureQueryDataContract;
              }
        }
        public static object GetDataContractInfo(string url, DataContractsEnum dataContractType, out string response)
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
              httpWebRequest.Method = "GET";

              HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
              string JSON = string.Empty;

              using (StreamReader reader = new StreamReader(httpResponse.GetResponseStream()))
            JSON = reader.ReadToEnd();

              response = JSON;

              System.Web.Script.Serialization.JavaScriptSerializer javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

              if (dataContractType == DataContractsEnum.FeatureServiceInfo)
              {
            return javaScriptSerializer.Deserialize<FeatureServiceInfo>(JSON);
              }
              else if (dataContractType == DataContractsEnum.Administration)
              {
            return javaScriptSerializer.Deserialize<Administration>(JSON) as Administration;
              }
              else
              {
            throw new NotImplementedException();
              }
        }