【问题标题】:C# web api return list of list objectsC# web api 返回列表对象的列表
【发布时间】:2016-04-14 07:11:22
【问题描述】:

我有一个典型的反应

ResultModel
{
    Bool Result,
    Object Response
}

我想发送带有产品的示例类别

var response = new List<Category> 
{
    new Category {Name = "1", Products = new List<Product> {new Product {Name = "1_1"}, new Product {Name = "1_2"}} },
    new Category {Name = "2", Products = new List<Product> {new Product {Name = "2_1"}, new Product {Name = "2_2"}} },
    new Category {Name = "3", Products = new List<Product> () },
}

我的回应

return new ResultModel
        {
            Response = response,
            Result = true
        };

但我无法收到 Products 属性作为响应。 有人知道为什么吗? 谢谢

【问题讨论】:

  • 请添加您遇到的错误
  • 没有任何错误。我只收到 Result = true 和 3 个类别,有名称,但没有产品
  • 当然我在 Category 和 Product 中有更多的属性。例如,我只展示其中的一些。但它们都很简单 (int, string)

标签: c# api asp.net-web-api


【解决方案1】:

您只获得属性 Name 因为它是一个原始类型,并且序列化程序知道如何序列化和反序列化它。如果你想获得更复杂的对象,你必须确保序列化器知道如何去做。

您可以在您的对象中实现接口 Iserializable 来实现这一点,并且在您确定可以序列化它之后,您可以在您的 webApi 中使用它。

https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx

在这里你有一个关于这个Using Serializable attribute on Model in WebAPI的SO线程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2019-03-16
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多