返回如何从 Web API 中以 C# 返回动态对象列表。

huangapple go评论138阅读模式
英文:

How to return a dynamic object list from web api in c#

问题

I Have an object

  1. public class GeneralResponseClass
  2. {
  3. public int ErrorCode { set; get; }
  4. public string Date { set; get; }
  5. public String ErrorMessage { set; get; }
  6. public List<dynamic> Data = new List<dynamic>();
  7. public bool Success { set; get; }
  8. public GeneralResponseClass()
  9. {
  10. Date = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
  11. }
  12. }

in my API Function i want to return the object

  1. [HttpGet]
  2. public GeneralResponseClass Get()
  3. {
  4. GeneralResponseClass generalResponseClass = new GeneralResponseClass();
  5. generalResponseClass.ErrorCode = 0;
  6. generalResponseClass.ErrorMessage = "";
  7. generalResponseClass.Success = false;
  8. generalResponseClass.Data.Add(new
  9. {
  10. Name = "User 1",
  11. Email = "User1@user.com"
  12. });
  13. generalResponseClass.Data.Add(new
  14. {
  15. Name = "User 2",
  16. Email = "User2@user.com"
  17. });
  18. return generalResponseClass;
  19. }

in the response i get don't get the List

  1. {
  2. "errorCode": 0,
  3. "date": "06/01/2020 16:32:12",
  4. "errorMessage": "",
  5. "success": false
  6. }

Why doesn't the List<dynamic> Data return?

英文:

I Have an object

  1. public class GeneralResponseClass
  2. {
  3. public int ErrorCode { set; get; }
  4. public string Date { set; get; }
  5. public String ErrorMessage { set; get; }
  6. public List&lt;dynamic&gt; Data = new List&lt;dynamic&gt;();
  7. public bool Success { set; get; }
  8. public GeneralResponseClass()
  9. {
  10. Date = DateTime.Now.ToString(&quot;dd/MM/yyyy HH:mm:ss&quot;);
  11. }
  12. }

in my API Function i want to return the object

  1. [HttpGet]
  2. public GeneralResponseClass Get()
  3. {
  4. GeneralResponseClass generalResponseClass = new GeneralResponseClass();
  5. generalResponseClass.ErrorCode = 0;
  6. generalResponseClass.ErrorMessage = &quot;&quot;;
  7. generalResponseClass.Success = false;
  8. generalResponseClass.Data.Add(new
  9. {
  10. Name = &quot;User 1&quot;,
  11. Email = &quot;User1@user.com&quot;
  12. });
  13. generalResponseClass.Data.Add(new
  14. {
  15. Name = &quot;User 2&quot;,
  16. Email = &quot;User2@user.com&quot;
  17. });
  18. return generalResponseClass;
  19. }

in the response i get don't get the List

  1. {
  2. errorCode: 0,
  3. date: &quot;06/01/2020 16:32:12&quot;,
  4. errorMessage: &quot;&quot;,
  5. success: false
  6. }

Why The List<dynamic> Data dont return?

答案1

得分: 2

你不能返回带有“anonymous”对象的集合。您可以使用类似于“anonymous”的“ExpandoObject”。您还可以为您的对象类型创建一个自定义类,因为它们在您的情况下具有相同的属性(至少在模板中是这样的)。

您可以在这里查看更多关于“ExpandoObject”的信息:https://stackoverflow.com/questions/1653046/what-are-the-true-benefits-of-expandoobject

英文:

You cannot return any collection with anonymous object. You can use ExpandoObject which is simillar to anonymous. You can also create a custom class for your type of object since they have the same properties in your case (at least in the template).

You can check for more on ExpandoObject here: https://stackoverflow.com/questions/1653046/what-are-the-true-benefits-of-expandoobject

huangapple
  • 本文由 发表于 2020年1月6日 22:34:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/59613910.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定