如何为某种特定类型而不是全局设置 Json.NET ContractSerializer?

2024-01-28

我想仅为 ASP.NET Web API 应用程序中的某些类型设置合同序列化程序。我可以在 App_Start/FormatterConfig.cs 中全局设置设置,如下所示:

public static void RegisterGlobalFormatters(MediaTypeFormatterCollection formatters)
{
    jsonSerializerSettings.ContractResolver = new CriteriaContractResolver(new List<string>(new string[]{"mdData", "name", "label"})); 

...

但我怎样才能将其应用于一种或多种特定的类类型呢?

我想要这样做的原因是因为我需要能够根据类似于以下示例的 Web 服务的配置或参数来设置在运行时应序列化哪些字段:

使用 JSON.net,在基类上下文中使用时,如何防止序列化派生类的属性? https://stackoverflow.com/questions/5872855/using-json-net-how-do-i-prevent-serializing-properties-of-a-derived-class-when

http://json.codeplex.com/discussions/347610 http://json.codeplex.com/discussions/347610


您有几个选择:

  • 创建由自定义格式化程序处理的自定义类型。此自定义类型可以(以某种方式)指定哪些字段需要序列化(然后将该信息输入 Json 序列化程序)
  • 查看每个控制器的配置(参见here http://blogs.msdn.com/b/jmstall/archive/2012/05/11/per-controller-configuration-in-webapi.aspx) 尝试根据需要设置格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为某种特定类型而不是全局设置 Json.NET ContractSerializer? 的相关文章

  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 如何在另一个应用程序中挂钩 api 调用

    我正在尝试挂钩另一个应用程序的 ExtTextOut 和 DrawTextExt GDI 方法调用 我知道我需要使用 GetProcAddress 来查找 gdi32 dll 中那些方法的地址 并用我的函数的地址覆盖我想要挂钩的进程中的地址
  • Windows 服务应用程序中自托管 ASP.NET Web API 的问题

    我在网上看到了一些文章 描述了如何在 Windows 服务应用程序中自行托管 ASP NET Web API 请参阅here http www piotrwalat net hosting web api in windows servic
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • 来自 3rd 方库的链接器错误 LNK2019

    我正在将旧的 vc 6 0 应用程序移植到 vs2005 我收到以下链接器错误 我花了几天时间试图找到解决方案 错误LNK2019 无法解析的外部符号 imp 创建AwnService 52 在函数 public int thiscall
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • TCP/IP IOCP 接收到的数据有时会损坏 - Windows 上的 Visual C++

    我正在编写一个简单的测试 ICOP 客户端和服务器 以确保我正确使用 API 并且服务器正确接收客户端发送的数据 我已经包含了这个问题的所有代码 这就是我遇到一些问题的地方 接收缓冲区内的数据有时似乎已损坏 损坏是因为有时缓冲区内的数据块可
  • Java 二十一点摇摆 gui ImageIcon

    我一周前刚刚开始学习 Java 并完成了我的第一个二十一点程序 我想通过使用 Java swing ImageIcon 来增强它 以便每次我抽一张牌 比如说一张 A 时 它实际上都会将 A 作为图像显示在屏幕或我当前的手牌上 我编写了这个程
  • Github 上的 Mocha 并行作业 Actions

    我刚刚切换到 Mocha 中的并行测试 效果很好 但是 当我在 github 上运行它时 它似乎没有并行运行 为了让 Mocha 在 Github Actions 上并行运行 我需要配置什么 mocharc json Mocha 9 x t
  • 下拉列表到组合框

    我正在寻找一个简单的控件或 jQuery 插件 将 DropDownList 转换为 ComboBox 我目前正在使用 Ajax Combo Box 我已经受够了 我试图使组合框的宽度为 100 但当从列表中选择一个项目时 组合框的大小调整
  • Android 上可以处理不规则形状上的事件吗?

    据我目前所知 了解很少 Android 中的所有视图都是正方形或矩形 这几乎一直都很好 直到您想要 我真正想要的 创建可以处理事件的非方形形状 我的目标是将一个圆分为 3 个部分 每个部分 120 圆圈的每个部分都应该像一个按钮 问题是 如
  • Django 测试不会引发 CharField 的完整性错误

    如果有以下 Django 1 4 模型 from django db import models class SimpleModel models Model name models CharField max length 100 这个简
  • Rails - 表单字段之间出现换行符并出现错误

    我在尝试消除 Rails 似乎在有错误的字段之间插入的额外换行符时遇到了麻烦 我创建了一个新的 Rails 应用程序 创建了一个名为 用户 的脚手架 其中包含姓名和年龄 然后说validates name presence gt true
  • 如何创建一个包含字符串和对象哈希表条目的 JList?

    我想创建一个 JList 其中包含 String 和 object 的哈希表的条目 Hashtable
  • 通过正则表达式查找括号

    我不太擅长正则表达式 我正在查找字符串是否包含 注意 我并不是在寻找实际的 中的内容 只是看字符串中是否包含 或 我知道如果我执行 scan 它将获取任何匹配项并创建一个数组 我想要的 我只是不知道表达方式 使用非贪婪匹配的替代方案 没有那
  • 从 .NET 数据库中检索数据的最快方法?

    Using ADO NET http en wikipedia org wiki ADO NET 从数据库检索数据并将数据填充到我的业务对象中的最快方法是什么 我应该使用哪一个 DBDataReader DBDataAdapter 或任何其
  • segue:目标视图控制器的怪异

    在我的应用程序中 我使用故事板和转场 并且经常在执行转场之前将数据传递到目标视图控制器 如下所示 void prepareForSegue UIStoryboardSegue segue sender id sender if segue
  • 如何检查一种类型是否具有另一种类型的所有键但没有附加键?

    我想检查一种类型是否具有另一种类型的所有键 但没有其他键 例如它是一个子集 基本上 我需要一些像下面这样的函数 如果 TTo 不是子集 它会给我打字稿错误 function typeCheck
  • imagerotate() 不起作用

    我的 imagerotate PHP 函数有问题 我运行下面的脚本 它成功地使用 imagejpeg 创建了新图像 但新图像与原始图像相同 因此它不会旋转它 它在 Apache error log 中没有显示错误消息 所以我不知道 file
  • mysql用触发器设置最大行数

    我想创建一个最多包含 5 行的表 因此 如果我添加新行并且表已经有 5 行 则触发器应删除第一行并添加新行 e g my table id data 1 a 2 b 3 c 4 d 改成 my table id data 2 b 3 c 4
  • 是否可以创建一个通用的 Session.QueryOver

    出于好奇 是否可以使用 NHibernate 3 执行类似的操作 public IQueryable
  • 为什么我的程序会改变布尔值? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在编写一个简单的程序 用于检查输入单词是否可以用输入字母拼写 无论我输入什么 布尔值总是会更改为 true 即使 if 语句中
  • Symfony:Doctrine 数据装置:如何处理大型 csv 文件?

    我正在尝试使用学说数据固定装置从 大 CSV 文件 3Mo 37000 行 7 列 插入 在 mySQL 数据库中 数据 过程非常缓慢 此时我无法成功 可能我还得再等一会儿 我想学说数据装置并不是为了管理如此大量的数据 也许解决方案应该是将
  • 有免费的 XNA UI 库吗?

    我正在考虑游戏中的游戏用户界面 查看 XNAML http msmvps com blogs valentin pages xnaml component aspx http msmvps com blogs valentin pages
  • 类成员的继承,与模板混合

    在下面的代码中 为什么T2给出这个错误 m t was not declared in this scope 而结核病还好吗 我如何在仍然使用模板的情况下访问 T2 中的 T1 成员 All good class TA public TA
  • 如何为某种特定类型而不是全局设置 Json.NET ContractSerializer?

    我想仅为 ASP NET Web API 应用程序中的某些类型设置合同序列化程序 我可以在 App Start FormatterConfig cs 中全局设置设置 如下所示 public static void RegisterGloba