我有一个现有的应用程序,它发送一个带有名为“过滤器”的参数的请求。'filters' 参数包含一个 JSON 编码的字符串。例子:
[{"dataIndex":"fieldName", "value":"fieldValue"}, {"dataIndex":"field2", "value":"value2"}].
使用 ServiceStack,我想将它绑定为 C# 对象(网格类)上的属性。有没有首选的方法来处理这个?以下是我能想到的选项。我不认为“感觉”是正确的。
选项 1:
我确实有一个“ServiceModel”项目,这会创建一个我不太喜欢的依赖项。
在 AppHost.Configure() 方法中添加
RequestBinders[typeof(Grid)] => httpReq => {
return new Grid() {
Filters = new ServiceStack.Text.JsonSerializer<IList<Filter>>().DeserializeFromString(httpReq.QueryString["filters"])
}
}
选项2: 似乎有点“hacky”
public class Grid
{
private string _filters;
public dynamic Filters {
get
{
ServiceStack.Text.JsonSerializer<IList<Filter().DeserializeFromString(_filters);
}
set
{
_filters = value;
}
}
}