从未调用ASP.NET Web API自定义JsonConverter
所以这是我的情况.我正在WebForms应用程序中实现一个WEB API.我有一堆动态类,基本上是字典,需要使用自定义
JSON序列化格式化程序才能正常工作(因为默认转换器只显示一堆键值配对).
所以首先我创建了一个自定义JSON转换器: /// <summary> /// A class to convert entities to JSON /// </summary> public class EntityJsonConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType.IsSubclassOf(typeof(Entity)); } public override bool CanRead { get { return true; } } public override bool CanWrite { get { return true; } } public override void WriteJson(JsonWriter writer,object value,JsonSerializer serializer) { // Details not important. This code is called and works perfectly. } public override object ReadJson(JsonReader reader,Type objectType,object existingValue,JsonSerializer serializer) { // Details not important. This code is *never* called for some reason. } } 一旦我定义了I,然后将其插入到全局JSON媒体类型格式化器中: // Add a custom converter for Entities. foreach (var formatter in GlobalConfiguration.Configuration.Formatters) { var jsonFormatter = formatter as JsonMediaTypeFormatter; if (jsonFormatter == null) continue; jsonFormatter.SerializerSettings.Converters.Add(new EntityJsonConverter()); } 最后,我的测试API(将来会有更多的添加,我只是试图测试系统,“联系人”继承自“实体”): public class ContactController : ApiController { public IEnumerable<Contact> Get() { // Details not important. Works perfectly. } [HttpPost] public bool Update(Contact contact) { // Details not important. Contact is always "null". } } 所以这是我在调试时看到的内容: 网站呼叫“获取”: > Controller.Get被调用.返回联系人列表. 网站呼叫“更新”: >为Contact类型调用Converter.CanConvert.返回true. 我完全感到困惑.我不明白为什么这在序列化时有效,但整个过程似乎只是在尝试反序列化时跳过我的自定义转换器.任何人都有任何想法,我做错了什么? 谢谢! 解决方法
阿吉兹现在我感到愚蠢.
…我没有在帖子数据中发送JSON.我不小心发了一堆混乱的文字.哎呦… 没关系! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC验证针对空列表框抛出NullRefer
- asp.net-mvc-routing – MVC 5路由和可选参数
- asp.net – Html-Agility-Pack没有加载包含完整内容的页面?
- asp.net – 以编程方式刷新/更新HttpContext.User
- asp.net-mvc – ASP.NET MVC从预览5升级到Beta版期间的问题
- asp.net-mvc-3 – EF5:无法创建,因为无法确定主键列.使用A
- asp.net – 如何在Button Click事件上调用此Jquery函数?
- asp.net – App_Offline.htm没有导致网站崩溃的可能原因是什
- asp.net-mvc – 为什么编码逗号URL?
- asp.net – 如何在回发上保持变量
- 如何使用ASP.NET更改HTML页面元素的CSS类?
- 使用IIS 5.1运行asp.net 4.0
- asp.net-mvc-3 – 调整使用jquery的MVC3应用程序
- ASP.NET中实现文件的保护性下载基础篇
- asp.net-core – Visual Studio 2015中的ASP.NET
- 处理ASP.NET MVC中日期的最佳方法 – Javascript
- asp.net-mvc – ASP.NET MVC推荐的依赖注入框架是
- asp.net-mvc – ASP.NET MVC 3列表到IEnumerable
- asp.net – 递归控制搜索与LINQ
- asp.net-mvc – Asp.net MVC控制器Action字符串参