从未调用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 – Mocking HttpPostedFileBase和InputStream进
- ASP.NET 程序中删除文件夹导致session失效问题的解决办法分
- asp.net读取excel文件的三种方法示例
- ASP.NET 2.0和4.0似乎在Forms身份验证中以不同方式处理根UR
- asp.net – 分类失败.返回未最终内容
- asp.net-mvc – 在ASP.NET MVC中添加服务引用4
- asp.net – 如何将两个模型传递给一个View
- asp.net-mvc – mvc3 maxLength输入
- asp.net-mvc – 存储库模式和单元测试ASP.NET Web API
- asp.net-mvc – ASP.NET MVC Beta授权属性发送给我错误的动
- asp.net-mvc – Mvc 3 Razor:使用部分部分视图?
- asp.net – 找不到可安装的ISAM. ‘/’应用程序中
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定
- 如何在asp.net转发器控件中获取项目点击事件?
- asp.net-mvc – 单选按钮如何与asp.net mvc绑定一
- asp.net-mvc – 带有实体框架的ASP.NET MVC
- 获取当前ASP.NET Web Api 2操作的URL
- asp.net“记住我”的cookie
- asp.net-core – 为什么要在ASP.NET Core中使用完
- asp.net – 用JavaScript计算时间间隔
