91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中WebApi Get請求方式傳遞實體參數的示例分析

發布時間:2021-08-13 09:16:07 來源:億速云 閱讀:372 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關C#中WebApi Get請求方式傳遞實體參數的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、實體類如何轉換成QueryString這種鍵值對格式?

叫鍵值對可能不夠專業,叫NameValueCollection?

很遺憾,也沒找到啥現成的例子。

最后祭出反射,來拼裝QueryString

二、服務器端如何提取QueryString里參數,自動變成一個實體類?

參數前面標注[FromUri]特性

上代碼。

實體類:

namespace BaseLT.Core.Contract
{
 public class Request
 {
 public Request();

 public int Top { set; }
 public int PageSize { get; set; }
 public int PageIndex { get; set; }
 public string OrderBy { get; set; }
 public int SortState { get; set; }

 public bool CompareObject<T>(T obj1, T obj2);
 public void ExtjsInit();
 }
}

WebApi服務器端:

public class TankController : ApiController
{
 [HttpGet]
 [Route("api/tank/matters/public/{id=0}")]
 public IEnumerable<Matter> Get(int id,[FromUri]Request req)
 {
 return do sth;
 }
}

客戶端:

[TestMethod]
public void TestTankApi()
{
 string url = "http://localhost/ybjzuser.api/api/tank/matters/public/";
 url += getQueryString(new Request()
 {
 PageIndex = 1,
 PageSize = 100
 });
 
 string re;
 using (WebClient webClient = new WebClient())
 {
 webClient.Encoding = Encoding.GetEncoding("utf-8");
 re = webClient.DownloadString(url);
 }
 Assert.AreNotEqual(null, re);
 Console.WriteLine(re);
}
static string getQueryString(Request req)
{
 StringBuilder query = new StringBuilder("?");

 PropertyInfo[] propertys = req.GetType().GetProperties();
 foreach (PropertyInfo pi in propertys)
 {
 if (pi.CanRead)
 {
 query.Append($@"{pi.Name}={pi.GetValue(req)}&");
 }
 }

 return query.ToString();
}

關于“C#中WebApi Get請求方式傳遞實體參數的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴海县| 当涂县| 婺源县| 嘉定区| 土默特左旗| 仪征市| 浏阳市| 长治市| 稷山县| 大邑县| 临洮县| 唐海县| 高唐县| 昌乐县| 馆陶县| 金秀| 梓潼县| 榕江县| 博罗县| 长沙县| 刚察县| 乐都县| 防城港市| 遂溪县| 鹤岗市| 公主岭市| 阿拉善左旗| 锡林郭勒盟| 南岸区| 崇信县| 田林县| 贵南县| 东乡| 黄浦区| 巴塘县| 大安市| 锡林浩特市| 忻城县| 应用必备| 吉林省| 咸宁市|