1

リクエスト "foo?Bar=baz" が与えられた場合、RequestResource には過去にリソースのプロパティ "Bar" に値 "baz" が設定されていました。

なぜこれが壊れたのでしょうか?ServiceStack の最近の重大な変更はありますか? 3.9.17.0 から 3.9.32 にアップグレードしました (.33 でも失敗します)。乾杯

コード:

[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/")
    }
}
4

1 に答える 1

1

@demisbellot がメーリング リストで私たちに返信したところ、彼の推測は正しかった: SearchTearm プロパティに [DataMember] 属性がありませんでした。

これは ServiceStack の最新バージョンではオプトインになっているようです。

于 2013-01-14T16:26:49.120 に答える