升级ServiceStack库后,请求DTO属性填充停止工作



给定请求"foo?Bar=baz",我们的RequestResource在过去是用资源的属性"Bar"中的值"baz"填充的。

你知道为什么这个会坏吗?ServiceStack最近有什么重大变化吗?我们已经从3.9.17.0升级到3.9.32(在0.33上也失败了)。欢呼声

codez:

[DataContract(Name = "Response")]
public class ItemsServiceResource
{
    public ItemsServiceResource()
    {
        PageInfo = new PageInfo
        {
            PageNumber = 1,
            PageSize = 100
        };
    }
    [DataMember]
    public int UserId { get; set; }
    [DataMember]
    public PageInfo PageInfo { get; set; }
    [DataMember]
    [JsonProperty]
    public List<Model.Item> Items { get; set; }
    // this is the property that comes now as null instead of being populated
    public string SearchTerm { get; set; } 
}

public class ItemsService : RestServiceBase<ItemsServiceResource>
{
    public override object OnGet(ItemsServiceResource request)
    {
        //do work
    }
}

端点注册是:

public class AppHost
{
    public AppHost()
        : base("blah Host") {}
    public override void Configure(Funq.Container container)
    {
        Routes
            .Add<ItemsServiceResource>("/user/{userId}/items/")
    }
}

@demisbellot刚刚在邮件列表中回复了我们,他的猜测是正确的:我们缺少searchteam属性中的[DataMember]属性。

显然这已经成为ServiceStack最新版本的选项。

最新更新