使用 ServiceStack.Text 作为 SignalR 的 JSON 序列化器

2023-12-19

为了在我的应用程序层中实现一致的序列化,我想对 SignalR 使用与我在其他地方使用的相同的序列化库 (ServiceStack.Text)。

在关注 SignalR 的 Wiki 时entry https://github.com/SignalR/SignalR/wiki/Extensibility#replacing-the-ijsonserializer为了替换使用的 JSON 序列化器,我创建了这个基本处理程序:

public class SignalrServiceStackJsonSerializer : IJsonSerializer
{
    public void Serialize(object value, TextWriter writer)
    {
        var selfSerializer = value as IJsonWritable;
        if (selfSerializer != null)
            selfSerializer.WriteJson(writer);
        else
            JsonSerializer.SerializeToWriter(value, writer);
    }

    public object Parse(TextReader reader, Type targetType)
    {
        return JsonSerializer.DeserializeFromReader(reader, targetType);
    }
}

一体化:

var serializer = new SignalrServiceStackJsonSerializer();
GlobalHost.DependencyResolver.Register(typeof(IJsonSerializer), () => serializer);

不幸的是,集成后,SignalR JS 客户端确实获得了与默认序列化器不同的包。看起来,默认序列化程序生成(至少对于非用户消息)属性上限为 1 个字符的 JSON,将其替换为 ServiceStack.Text 后不会发生这种情况。因此,SignalR 尝试访问“I”,但收到“Id”。我无法找到 SignalR 服务器端源代码的相应部分。

我是否做错了什么,或者我是否必须创建一个更复杂的包装器才能使用 ServiceStack.Text 作为 JSON 序列化器?


我懒得去尝试。我们对 JSON.NET 有深度依赖,甚至在下一个版本中删除了这种可扩展性。对不起。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ServiceStack.Text 作为 SignalR 的 JSON 序列化器 的相关文章

  • JSON Patch RFC 中的波浪号转义应该如何操作?

    参考文献https www rfc editor org rfc rfc6902 appendix A 14 https www rfc editor org rfc rfc6902 appendix A 14 A 14 逃脱命令 目标 J
  • 使用 TestRestTemplate 和 MockRestServiceServer 时,解析异常而不是实体列表不起作用

    我有一个简单的控制器 CODE https github com joergi tryouts blob main kotlin mockrestserver src main kotlin io joergi kotlinmockrest
  • Android - 下载 JSON 数据并保存到共享首选项

    我正在从 PHP 服务读取 JSON 数据 每当该 JSON 的版本发生变化时 我想将其存储在 Android 上 用新数据替换旧数据 JSON 仅用于填充 Spinner 我的问题是 JSON 有 36KB 可以将其存储在共享首选项中有一
  • 在 JSON 对象中存储和发送原始文件数据

    我正在寻找一种方法来传输任何文件类型的原始文件数据和任何可能的内容 我的意思是文件和文件内容都是用户生成的 在 Backbone 前端中使用 xhr ajax 调用两种方式针对 Django 后端 编辑 也许问题仍然不清楚 如果您在 IDE
  • 如何阅读网站内容?

    我是使用 python 2 7 的网络爬虫的新手 一 背景 现在 我想收集有用的数据AQICN org http aqicn org city shenyang usconsulate 这是一个很棒的网站 提供世界各地的空气质量数据 我想用
  • Emoji 字符无法编码为 JSON

    我有一个UITextView我称之为messageField 其中的数据messageField is POST ed 以 JSON 格式发送到服务器 当用户输入表情符号字符时 我无法将数据编码为JSON 我认为 Emoji 使用 Unic
  • 使用 JSON 文件动态更新 HTML 内容?

    我想创建一个 JS 循环 使用 jQuery 来查看 JSON 文件 并根据是否 div ids 与 JSON id 值匹配 这需要易于扩展并且无论有多少人都可以工作 div 添加了盒子 我有一个 HTML 文件 设置如下 div clas
  • 将 JSON 数据导入 Google 表格

    我从 Web 服务中提取数据 其格式为 JSON 我正在为 Google Sheets 编写一个 Google Apps 脚本 它将为我填充数据 我的问题是 我似乎无法解析它 Doing var dataset myJSONtext Bro
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 创建一个 JSON 对象以在 Spring Boot 测试中发布

    我想编写基本测试来使用 JSON 负载在 users URL 上执行 POST 请求来创建用户 我找不到如何将新对象转换为 JSON 到目前为止有这么多 这显然是错误的 但解释了目的 Test public void createUser
  • Signal R Native Android 应用程序协商失败

    我正在尝试创建一个可以连接到我的基本 SignalR Hub 的 Android 应用程序 它只是一个基本的集线器文件 我想用它来测试一些东西 但到目前为止我还没有运气 有人可以看看我做错的事情吗 每次我尝试运行它时 我都会收到以下堆栈竞赛
  • MySQL 与 PostgreSQL JSON 搜索功能

    我一直在寻找一篇博客文章或一个功能矩阵 通过 JSON 功能对 MySQL 和 PostgreSQL 进行比较 我找到了一个好的Postgres 的特征矩阵 https www postgresql org about featuremat
  • 使用 swagger-ui-express 和 swagger-jsdoc 时如何在 swagger 文件中正确使用 $ref

    我开始使用 swagger 与swagger ui express and swagger jsdoc自动记录我现有的 API 它是用nodejs并表达 就像这里描述的那样 example http www acuriousanimal c
  • Moxy、JSON 和 Jersey 2.0 不会反序列化纯字符串数组

    在我当前的设置中 我使用 Jersey 2 0 和 MOXy 如中所述球衣文档 https jersey java net documentation latest media html json moxy 我完全依赖于 自动发现的功能 所
  • 读取google地图返回的JSON数据

    在我的应用程序中 我使用 BlackBerry API 来获取纬度和经度 我想通过创建 http 连接使用 Google 地图进行反向地理编码 如何解析数据 然后读取特定元素 例如地址 示例网址 给出回应 name 9 600000 76
  • 一个领域模型,多个 json 视图

    我们有一组域类 它们使用球衣服务通过 jackson 序列化为 json 我们目前正在使用 JAXB 对类进行注释 尽管我们并不局限于此 这很好用 但我们希望为不同的用例提供不同的类序列化 Web site 移动应用程序 管理工具 公共AP
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而

随机推荐

  • Internet Explorer 中文本中散布着上标“L”符号

    我正在开发一个文本量很大的网站 该网站在 Chrome Firefox 和 Safari 中看起来都很好 但是当我在 Internet Explorer 中测试它时 它的文本上有随机分散的上标 L 符号 我回头查看代码 看看是否有任何额外的
  • 在哪里可以找到生产中的 Electron 应用程序的日志?

    我已经构建了一个应用程序Electron http electron atom io并使用电子建造者 https github com electron userland electron builder创建一个Squirrel https
  • 在 Docker 容器内进行开发是否可能/合理

    我是 Docker 新手 想知道是否可以 并且是一个好主意 在 Docker 容器中进行开发 我的意思是创建一个容器 执行 bash 安装和配置我需要的一切 然后开始在容器内进行开发 该容器随后成为我的主机 用于 CLI 相关工作 当我在旅
  • C++ 特定的声音输出? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想将一个电路连接到我的计算机 该电
  • 执行操作符而不是整个订阅者

    使用起来相当有吸引力Action s 而不是整个Subscriber当你只需要OnNext 只是因为它更具可读性 但当然 错误会发生 如果你只使用Action1你会得到一个Exception在你的应用程序中 do 运营商 http reac
  • ios标题和副标题在导航栏居中

    我试图在导航栏中添加两个 UILabel 而不是只有一个 我点击此链接以获取有关如何执行此操作的信息 iPhone 导航栏中的标题和副标题 https stackoverflow com questions 2817181 iphone t
  • 在存储过程中使用日期时间作为参数更新表时出错

    将 char 数据类型转换为 DateTime 数据类型导致 DateTime 值超出范围 该语句已终止 ALTER PROCEDURE dbo attendance updatebyemployee id Employee id int
  • iOS CoreData - 启用 sqlite WAL / 预写日志记录有什么缺点吗

    在 WWDC 2013 会议 207 核心数据的新增功能 中 他们提到您可以在添加持久存储时通过传递选项字典来启用 SQLite WAL NSSQLitePragmasOption journal mode WAL 在 iOS4 上可用 并
  • CSS 模块不适用于 React 版本 16.6.0

    我试图在 React 中使用 CSS 模块 这是我的 App js 代码 import React from react import styles from index css const App gt const REACT VERSI
  • 如何将正确的 Cabal 规范与 Travis CI 构建中的每个解析器相匹配?

    更新我的后Haskell 包的 https hackage haskell org package crypto enigma cabal file 到阴谋集团 2 2 https github com orome crypto enigm
  • system()函数属于C还是C++?

    include
  • 如何在.NET中创建和使用资源

    如何创建一个可以在程序的各个部分轻松引用和使用的资源 我的具体问题是我有一个 NotifyIcon 我想根据程序的状态更改其图标 这是一个常见问题 但我已经困扰了很长时间 好吧 在四处搜索并拼凑了 StackOverflow 周围的各个点之
  • Linq.Except 的更多“SQL 语法”

    Linq 中的大多数表达式都可以用两种语法编写 基本上 方法语法和类似 SQL 的语法 例如 方法语法 var results MySet Where n gt n Status State ACTIVE 类似 SQL 的语法 var re
  • 如何将选中的复选框(Aero 主题)渲染到 RenderTargetBitmap?

    我的复选框呈现时没有复选标记 如果我只使用一个复选框 实例对象 进行渲染 那么我可以显示复选标记 但我无法使用此解决方案 我需要能够使用本地复选框渲染它 此复选框通过 PresentationFramework Aero component
  • MySQL触发器中的多个if语句

    如果 MySQL 触发器中有多个 if 语句 最好的方法是什么 目前我的 SQL 如下所示 IF NOT NEW status lt gt OLD status THEN my sql ELSEIF NOT NEW actual lt gt
  • Internet Explorer 11:空白页内存泄漏?

    互联网浏览器 11 版本 11 0 9600 17280 更新版本 11 0 12 KB2977629 HTML 页面 测试方法 导航至页面 打开开发者工具 F12 切换到内存选项卡 开始分析会话 按住页面上的刷新按钮 F5 观察内存的爬升
  • 以编程方式调用 Pylint

    我想调用 Pylint 检查器 仅限于错误信号部分 作为我的单元测试的一部分 所以我检查了 Pylint 可执行脚本 找到了pylint lint Run助手类 在那里我迷失了很长一段时间 init 函数 以调用结束sys exit 有人尝
  • 将表结构复制到sqlite3中的新表

    有没有一种简单的方法将现有表结构复制到新表结构 不需要数据 只需要结构 gt 如 id INTEGER name varchar 20 Thx 你可以使用这样的命令 CREATE TABLE copied AS SELECT FROM my
  • Gio.MemoryInputStream 关​​闭时不会释放内存

    在 Windows 7 上运行 Python 3 4 Gio MemoryInputStream 的 close 函数不会释放内存 而它应该释放内存 测试代码是 from gi repository import Gio import os
  • 使用 ServiceStack.Text 作为 SignalR 的 JSON 序列化器

    为了在我的应用程序层中实现一致的序列化 我想对 SignalR 使用与我在其他地方使用的相同的序列化库 ServiceStack Text 在关注 SignalR 的 Wiki 时entry https github com SignalR