JsonConvert SerializeObject忽略files / stream / System.Web.HttpPostedFileWrapper

时间:2017-08-23 14:54:39

标签: c# asp.net-mvc serialization json.net

我在自定义JsonConvert.SerializeObject中使用ActionFilterAttributeOnActionExecuting内部,我将序列化filterContext.ActionParameters用于记录目的 问题是某些操作是通过System.Web.HttpPostedFileWrapper通过<from/>接收文件(enctype="multipart/form-data"),因此我收到了错误

  

此流不支持超时。

我想要做的是忽略这些无法序列化且可能出错的对象。
我发现我可以忽略具有classProperties属性的[JsonIgnore] [ScriptIgnore],但我正在寻找更通用的解决方案,因为我不会想要将这些属性放在所有地方 我还尝试研究JsonSerializerSettings对象,但没有找到与我的案例相关的内容。

1 个答案:

答案 0 :(得分:0)

您只需过滤这些参数即可。有些想法:

var ToBeSerialized = filterContext.ActionParameters.Where(a=>a.Value.GetType()!=typeof(TheTypeYouWantToAvoid));

string result = JsonConvert.SerializeObject(ToBeSerialized);