问题标签 [bond]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
450 浏览

c# - 使用 Bond 嵌套对象

我正在尝试使用 Microsoft Bond 来序列化嵌套对象。但是 Bond 会抛出内部错误(例如 KeyNotFoundException)。

我的课程:

然后我创建一个实例并序列化:

但是我在Serialize.To(writer, src);.

我也尝试添加[Bond.Schema]IFoo,但是Deserialize<Bar>.From(reader);失败了......

如何使用 Bond 序列化Bar包含某个Foo类的类而不会出现这样的异常?

0 投票
1 回答
110 浏览

c# - 在 Bond 中初始化继承的结构

我有一个 Bond 模式(理想情况下)会有一些继承的字段:

当我创建派生对象(SampleEvent)时,我可以这样做:

但是我在哪里可以设置Context字段的初始化?

0 投票
1 回答
397 浏览

bond - C# 绑定:字符串到 wstring

Bond C# 手册中,它记录了以下内容:

以下这些更改将破坏线路兼容性,不推荐:

  • 添加或删除必填字段
  • 字段类型的不兼容更改(上面未涵盖的任何类型更改);例如:int32 转字符串,字符串转 wstring
  • ...

但它没有解释为什么。这里的用例是我正在使用将 C# 应用程序与 C++ 后端连接起来的 Bond。该字段当前是一个字符串。我想将其更改为 wstring。该手册指出,C# 字符串可以处理 C++ 字符串和 C++ wstrings。因此,为什么我不能将字段类型从字符串更改为 wstring?为什么这个断线兼容?

0 投票
1 回答
148 浏览

c++ - C++ 结构可以转换为 Microsoft Bond 结构吗?

目标是将提供的 C++ 结构转换为键结构。邦德支持吗?

否则是否有任何好的示例可用于将 C++ 结构一般转换为已编译的键结构?我更愿意集中这个逻辑,而不是为每个键结构创建自定义转换。

0 投票
1 回答
317 浏览

c# - 使用 MS Bond 反序列化 Application Insights JSON 流

我们使用客户端 SDK 中的标准接收器可扩展性将 Application Insights 生成的数据的副本发送到事件中心。我们遵循与默认接收器相同的批处理和压缩逻辑——而不是简单地将数据发送到事件中心端点。

因此,在接收数据的函数应用中,单个 EventHub 消息将包含一个带有多个遥测点的 JSON 流,使用 gzip 压缩。

我们需要反序列化流并根据遥测类型采取一些行动。我们将每秒接收大约 50k,因此性能很重要。

我注意到 SDK 正在使用Bond并定义了公共架构 - https://github.com/Microsoft/ApplicationInsights-aspnetcore/tree/develop/Schema/PublicSchema

我目前正在做类似的事情,

这是可行的,但是使用 JSON.Net 在项目级别进行转换是这种规模的昂贵操作,并且会占用 CPU。

假设执行反序列化的应用程序可以访问这些类型,例如https://github.com/Microsoft/ApplicationInsights-aspnetcore/tree/develop/test/ApplicationInsightsTypes,那么使用反序列化 JSON 流的推荐和最有效的方法是什么债券定义?

0 投票
1 回答
143 浏览

bond - 无法使用 Microsoft.Bond 序列化字符串对象

我正在使用 Microsoft.Bond 序列化一个运行良好的类对象。但是,当我尝试序列化一个简单的 System.String 对象时,CompactBinaryWriter 几乎没有向输出缓冲区写入任何内容。我正在使用这段代码:

output在这种情况下,是一个单元素数组:{0},与 v 的值无关。有人能指出为什么这不起作用吗?

0 投票
1 回答
264 浏览

c# - 使用我的 NuGet 包编译项目的 .bond 文件

我有一个带有 .bond 文件的 NuGet 包。我的包的用户可以从我的包的 .bond 文件中的结构派生他们的 Bond 结构。

我希望在包含我的 NuGet 包时编译用户的 Bond 文件。今天,它们必须包括我的 NuGet 和 Bond.CSharp NuGet。但是,我的 NuGet 已经引用了Bond.CSharp

如何编写我的包,以便消费者不需要拥有自己的包<PackageReference Include="Bond.CSharp" ... />

0 投票
1 回答
43 浏览

c# - 在不知道底层架构的情况下进行 Microsoft Bond 反序列化

我正在查看我的机器上发生的一些网络请求,我发现其中一些请求使用的是Microsoft Bond数据序列化格式。我想反序列化请求的内容,但我没有用于创建其内容的架构。

我知道使用 ProtoBuf 编译器,有一种方法可以在没有架构的情况下输出基于 ProtoBuf 的二进制文件的内容,例如:

Microsoft Bond 是否有类似的功能?我很高兴编写 C#/C++ 代码来完成这项工作,但很好奇这是否可能。

作为参考,协议是Compact Binary