【发布时间】:2019-10-29 05:00:03
【问题描述】:
我正在尝试:
[EnableQuery]
[HttpGet]
[ODataRoute("")]
public IHttpActionResult Get(ODataQueryOptions<UserODataModel> options)
{
var users = _repository.RetrieveOData();
var serialQuery = JsonConvert.SerializeObject(options, jsonOptions);
//save serialQuery somewhere
return Ok(users);
}
得到了
Newtonsoft.Json.JsonSerializationException:'从'Microsoft.Owin.Host.SystemWeb.CallStreams.InputStream'上的'ReadTimeout'获取值时出错。'
“此流不支持超时。”
我知道已经有一个关于序列化 Stream 的问题:
Newtonsoft Json.net - how to serialize content of a stream?
但在这种情况下,我不能从ODataQueryOptions“提取流值”,或者我可以吗?
有什么想法?
【问题讨论】:
-
你真的需要序列化整个选项对象吗?它非常复杂,毫无疑问,它包含的东西比你真正需要的要多得多。对您的问题的一个更简单的答案可能是定义一个新对象,您可以将所需的相关选项数据复制到该对象中,并且就是您序列化的那个实例。
标签: serialization odata jsonconvert