0
在我們的應用中,我們使用Newtonsoft.Json來反序列化和序列化視頻提要對象。我們之前有過Newtonsoft.Json 3.5。事情運行良好。但是最近,我們將Newtonsoft.Json.dll升級到4.5,因爲TweetSharp 2.3依賴於它。這導致了我們的視頻輸入頁面返回404我縮小的問題,似乎這樣的代碼引起的問題DefaultContractResolver的實現導致404
JsonResult = JsonConvert.SerializeObject(
collection,
Formatting.Indented,
new JsonSerializerSettings { ContractResolver = new GetClipContractResolver(IncludeMedia) });
class GetClipContractResolver : DefaultContractResolver
{
private bool IncludeMedia { get; set; }
public GetClipContractResolver(bool includeMedia)
{
this.IncludeMedia = includeMedia;
}
protected override JsonProperty CreateProperty(JsonObjectContract contract, System.Reflection.MemberInfo member)
{
// remove Clip.Media
if (member.DeclaringType == typeof(KenticoWhiteLabelCore.Core.VideoDataServiceConsumer.VideoDataClip))
{
if (member.Name == "Media" && IncludeMedia == false)
{
return null;
}
}
return base.CreateProperty(contract, member);
}
}
JsonConvert.SerializeObject工程確定,但JsonProperty CreateProperty()重寫方法導致了問題。我刪除它,一切正常。任何想法爲什麼?我們不能沒有重寫CreateProperty()。如何解決它的建議?爲什麼它會在Newtonsoft.Json 4.5中突然停止工作?