1

是一个结果示例,(facebook公共示例)

(/search?q=coffee&type=place¢er=37.76,-122.427&distance=1000)

我有这个模型:

[DataContract]
public class FBPlaces
{
    [DataMember(Name = "data")]
    public List<Place> Data { get; set; }

    [DataMember(Name = "paging")]
    public Paging Paging { get; set; }
}

[DataContract]
public class Paging
{
    [DataMember(Name = "next")]
    public string Next { get; set; }
}

[DataContract]
public class Place
{
    [DataMember(Name = "location")]
    public List<Location> Locations { get; set; }

    [DataMember(Name = "category")]
    public string Category { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "id")]
    public string ID { get; set; }
}

[DataContract]
public class Location
{
    [DataMember(Name = "street")]
    public string Street { get; set; }

    [DataMember(Name = "city")]
    public string City { get; set; }

    [DataMember(Name = "state")]
    public string State { get; set; }

    //[DataMember(IsRequired = false, Name = "country ")]
    //public string Country { get; set; }

    [DataMember(Name = "zip")]
    public string Zip { get; set; }

    [DataMember(Name = "latitude")]
    public double Latitude { get; set; }

    [DataMember(Name = "longitude")]
    public double Longitude { get; set; }
}

问题是映射“位置”数组,我得到

System.ArgumentException:为调用方法'Void set_Item(Int32,MyProject.Models.Location)'提供的参数数量不正确

  • 如果我删除 Locations ,一切都很好,我得到 Category+Name+Id 。(但没有地点)

  • 如何解决?

  • 在我的真实示例(不同位置查询)中,并不总是显示“国家”,我如何处理这种数据?我评论了 Country property 。

4

1 回答 1

1

位置不是一个数组。

尝试

[DataContract]
 public class Place
 {
    [DataMember(Name = "location")]
    public Location Locations { get; set; }

    [DataMember(Name = "category")]
    public string Category { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "id")]
    public string ID { get; set; }
}
于 2013-03-09T13:32:28.250 回答