/// <summary>
 /// 删除实体
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public virtual CommandResult Delete(TEntity info, bool anonymous = false)
 {
     try
     {
         using (var client = new GZipWebClient())
         {
             if (!anonymous)
             {
                 if (TokenInfo.Tokens.ContainsKey(RepoUri) == false || TokenInfo.Tokens[RepoUri].NeedNewToken())
                 {
                     GetToken();
                 }
                 client.Headers.Add("Authorization", string.Format("{0} {1}", "Bearer", TokenInfo.Tokens[RepoUri].Token));
             }
             string url = GetControllerUrl() + HttpUtility.UrlEncode(string.Format("{0}", info.ID), ASCIIEncoding.UTF8) + "/";
             client.Encoding = System.Text.Encoding.UTF8;
             client.Headers.Add("accept", "application/json;charset=utf-8");
             client.Headers.Add("content-type", "application/json;charset=utf-8;");
             var retBytes = client.UploadString(url, "DELETE", string.Empty);
             if (!string.IsNullOrEmpty(retBytes))
             {
                 return(JsonConvert.DeserializeObject <CommandResult>(retBytes));
             }
             return(new CommandResult(ResultCode.Successful, string.Empty));
         }
     }
     catch (Exception ex)
     {
         if (ex is WebException)
         {
             var wex      = ex as WebException;
             var response = wex.Response as System.Net.HttpWebResponse;
             if (response != null && response.StatusCode == HttpStatusCode.Unauthorized)
             {
                 TokenInfo.Tokens[RepoUri] = null;                                                                          //如果是未授权,则清掉当前Token
             }
         }
         return(new CommandResult(ResultCode.Fail, ex.Message));
     }
 }