在 Apache Thrift C# 中将流作为属性发送

2023-11-30

我想在 Thrift 服务中使用流,例如,在服务方法中使用流或类似的东西作为方法的参数(例如,能够将 IDataReader 的结果序列化为流,然后反序列化对另一服务器端数据的引用)。

我认为这显然不可能,但我想知道是否有另一种方法可以实现类似的目标。

Thanks.


Apache thrift 不支持发送流。您能得到的最接近的是发送一个字节数组。

要使用 thrift 实现类似流的体验,您可以创建一个接口,以字节数组的形式返回流的下一部分。

在 C# 语法中,它看起来像

interface MyService
{     
   int OpenStream(string path);

   byte[] ReadNextBlock(int openedStreamId, long maxBlockSize);

}

OpenStream 返回在每次调用时传递给 ReadNextBlock 的“流 ID”。在服务器端,您可以持有一个字典(key - openStreamID,value - Stream),它将用于保持源流打开并从中读取下一个块。

您还可以在客户端创建一个辅助类,该类将是 Stream 的后代,并将使用 OpenStream 和 ReadNextBlock 来获取实际数据。

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

在 Apache Thrift C# 中将流作为属性发送 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 为 LaTeX 编译清理字符串的函数?

    While xtable has a sanitize text function参数允许清理带有特殊字符的字符串 以阻止 LaTeX 编译破坏 Sweave knitr 文档 该包不会将该函数导出到用户空间 我怎样才能清理字符串asdf
  • 在 ggplot2 中使用闪避条形图绘制相对频率

    有人能回答我如何绘制条形图 将数字 x 变量映射到按 ggplot2 中的因子分组的相对频率吗 重要的是 相对频率应计算为分组的属于一个因素的 x 值内的频率 现在它们被计算为相对于totalx 值的数量 为了说明这一点 举一个例子 lib
  • 使用 Bcrypt 加密 InMemoryAuthentication 密码

    在对 UserDetailsS ervice 的自定义实现使用 Bcrypt 之前 我首先想看看是否可以在内存数据库中使用它 package com patrick Security import org springframework b
  • MYSQL DBDump 错误信息

    我需要获得 DBDUMP 我正在使用 MySQL 当我尝试获取数据库转储时出现以下错误 任何线索它做错了什么 C Program Files MySQL MySQL Server 5 1 bin gt mysqldump u root p
  • 访问 .jar 文件内的文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 Java jar 文件中读取资源文件 经过几个小时的谷歌搜索后 我开始对此彻底疯狂 我还在网站上看到了该问题的各种变体 但似乎无法使其发挥作用 JFrame 需要从 ini 文件读取数据 我创
  • Zend 验证器和错误消息:addValidator 和 addErrorMessage

    如果我有一个附加了多个验证器的表单元素 本例中为 3 个 我将如何使用addErrorMessage当每个唯一的验证器失败时创建自定义错误消息 有没有办法为每个验证器添加自定义消息 element new Zend Form Element
  • 带有 base64 数据内容的 HTML5 对象标签导致 Chrome 崩溃

    我正在使用 HTML5 FileReader 读取本地文件 然后 我想在上传到服务器之前立即在浏览器中显示文件内容 我读取该文件并尝试显示它 如下所示 var reader new FileReader reader onloadend f
  • 将变量编号增加 1

    我的代码中有大量字符都声明为比其他字符高 1 例如米1 米2 米3 有什么办法可以将我在 for 循环中搜索的数字增加 1 吗 我有一长串字母 我需要检查其中是否有与个人匹配的字母 但由于情况限制 我无法使用字符串 a1 是我正在寻找的特定
  • 名称错误“html”未使用 beautifulsoup4 定义

    我的 python 3 4 4 代码是 import urllib request from bs4 import BeautifulSoup from html parser import HTMLParser urls file C U
  • 如何在 Symfony 3.4 中从另一个包配置一个包?

    我有一个 Symfony 包 我想让这个捆绑包更改其他捆绑包的配置 例如 我想设置 Doctrine 的默认命名策略或创建我的包使用的自定义独白记录器配置 关键是 当我需要将捆绑包放入项目中时 我不想在 app config yml 中进行
  • jquery: this.not (':animated') && that.is (':visible') 不遵循规则,语法问题?只需几行代码

    当我点击 button 它还在做 do something 虽然 wrapper正在动画并且 wrapper span不可见 所以它不遵守规则 怎么了 button click function if wrapper not animate
  • 尝试从 TimerCallback 访问 Web 浏览器控件时 C#“InvalidCastException”

    基本上我和这位用户有同样的问题 如何通过鼠标按住和释放来检查 TrackBar 滑动我使用提供的第一个解决方案解决了这个问题 但是 当调用计时器时 我想在 Web 浏览器控件上调用 InvokeScript InvokeScript 运行时
  • JavaFX Canvas:绘制虚线

    我正在使用 JavaFX图形上下文对于立即模式绘图Canvas 可以画虚线吗 Thanks 有一个方法设置线短划线对于虚线 一切都像以前一样 gc setStroke Color RED gc setLineWidth 1 gc setLi
  • C++ 重载流运算符、引用参数和匿名实例

    如果我有一个带有重载流运算符的 POD struct Value friend ostream operator lt lt ostream out Value val 我无法将流运算符与匿名实例一起使用 例如我不能这样做 cout lt
  • 无需 join 语句即可从一张表更新另一张表

    我想根据另一个表的值更新表中的列 我使用稍旧版本的 Firebird 2 1 因此它在更新执行期间不支持 join 语句 为了消除这种情况 根据原始 Firebird 常见问题解答中给出的说明http www firebirdfaq org
  • JSF 2.0.3 中的英文错误消息(未验证)?

    我已成功配置 JSF 1 2 以显示来自服务器的英文错误消息 现在我正在过渡到 JSF 2 0 但错误消息似乎又回到了德语 如果你想用谷歌搜索任何东西 本地化错误消息真的很痛苦 顺便说一句 我不知道是谁决定本地化错误消息是一件好事 这是面孔
  • TableView 中的 JavaFX 属性

    我正在自学如何在 TableView 中使用 JavaFX 属性 但在处理某些属性类型时遇到了问题 我有一个包含两个属性的对象 Person public class Person private final StringProperty
  • Laravel 路由文件中的 If 条件

    有没有办法在 Laravel 5 的 paths php 文件中添加 if 语句 我已经尝试过这个但不起作用 Route get function if Auth user Route get PagesController logged
  • 如何等待函数或数据库查询?然后处理结果最后发回

    我有这样的场景 app get async function request response await foo DbConnection then result gt console log response ready let foo
  • 在 Apache Thrift C# 中将流作为属性发送

    我想在 Thrift 服务中使用流 例如 在服务方法中使用流或类似的东西作为方法的参数 例如 能够将 IDataReader 的结果序列化为流 然后反序列化对另一服务器端数据的引用 我认为这显然不可能 但我想知道是否有另一种方法可以实现类似