private IList<object_property_info> GetObjectType(string obj_type, bool isAsync, GetObjectTypeCallback callback, Object state)
        {
            var parameterList = new Dictionary<string, string> { { "method", "facebook.data.getObjectType" } };
            Utilities.AddRequiredParameter(parameterList, "obj_type", obj_type);

            if (isAsync)
            {
                SendRequestAsync<data_getObjectType_response, IList<object_property_info>>(parameterList, new FacebookCallCompleted<IList<object_property_info>>(callback), state, "object_property_info");
                return null;
            }

            var response = SendRequest<data_getObjectType_response>(parameterList);
            return response == null ? null : response.object_property_info;
        }
 /// <summary>
 /// Get detailed definitions of an object type, including all its properties and their types. 
 /// </summary>
 /// <example>
 /// <code>
 /// 
 /// </code>
 /// </example>
 /// <param name="obj_type">Object type to get definition about. </param>
 /// <param name="callback">The AsyncCallback delegate</param>
 /// <param name="state">An object containing state information for this asynchronous request</param>        
 /// <returns>list of object property definitions, each of which has; name: name of property; data_type: type of property. 1 for integer, 2 for string (max. 255 characters), 3 for text blob (max. 64kb); index_type: (reserved)</returns>
 public IList<object_property_info> GetObjectTypeAsync(string obj_type, GetObjectTypeCallback callback, Object state)
 {
     return GetObjectType(obj_type, true, callback, state);
 }