'filters'という名前のパラメーターを使用してリクエストを送信する既存のアプリケーションがあります。'filters'パラメーターには、JSONでエンコードされた文字列が含まれています。例:
[{"dataIndex":"fieldName", "value":"fieldValue"}, {"dataIndex":"field2", "value":"value2"}].
ServiceStackを使用して、これをC#オブジェクト(クラスGrid)のプロパティとしてバインドしたいと思います。これを処理するための好ましい方法はありますか?これが私が考えることができるオプションです。どちらも「感じ」が正しいとは思いません。
オプション1:
「ServiceModel」プロジェクトがあります。これにより、依存関係が作成されますが、これはあまり好きではありません。
AppHost.Configure()メソッドに追加します
RequestBinders[typeof(Grid)] => httpReq => {
return new Grid() {
Filters = new ServiceStack.Text.JsonSerializer<IList<Filter>>().DeserializeFromString(httpReq.QueryString["filters"])
}
}
オプション2: 一種の「ハッキー」のようです
public class Grid
{
private string _filters;
public dynamic Filters {
get
{
ServiceStack.Text.JsonSerializer<IList<Filter().DeserializeFromString(_filters);
}
set
{
_filters = value;
}
}
}