问题标签 [yamldotnet]

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 回答
873 浏览

unity3d - Unity3D 和 YamlDotNet 将数据反序列化为 Monobehaviour 派生类

我正在尝试将数据序列化到我的类中/从我的类中派生MonoBehaviour,这些类不能从客户端代码创建(例如,使用new关键字),而是必须由 Unity3D 特定的方法创建,GameObject.AddComponent<T>(). 如何使用该YamlDotNet框架为我的类填充值,而不必为每个类创建一个适配器?是否有某种我可以配置的内置适配器,这样 YamlDotNet 不会实例化它试图序列化的类?

一个典型的文件可能包含项目的映射,例如,

标签是我的项目的完全指定的类名,例如,PathwaysEngine.Inventory.Lamp+ymlPathwaysEngine我用于我的游戏引擎代码的命名空间,Inventory处理项目和诸如此类的东西,并且Lamp+yml是编译器如何表示嵌套类,yml在里面LampLamp+yml可能看起来像这样:

我调用从Deserialize()派生的所有对象,即,一旦游戏中存在类。在其他地方,我已经创建了一个非常复杂的填充类型对象,然后获取一个真实的运行时类的实例并用值填充它。必须有一种更清洁的方法来做到这一点,对吧?ThingAwake()MonoBehaviourDictionarySomeclass+ymlDeserializeSomeclass

我怎样才能:

  1. 告诉Deserializer我我的课是什么?有关上述问题的良好解决方案,请参见第二次编辑

  2. 在不尝试创建我的MonoBehaviour派生类的情况下获取数据?

编辑:我已经解决了这个问题,并且找到了处理自定义数据的好方法(在我尝试从我的数据中解析正则表达式的特殊情况下,并且不将它们视为字符串,因此,un- castable to regex) 是IYamlTypeConverter为该特定字符串使用 a 。但是,将 YamlDotNet 与 Unity3D 一起使用MonoBehaviour仍然是一个问题。

另一个编辑:上面的例子使用了一种非常丑陋的方式来确定类型。就我而言,最好的办法是先用反序列化器注册标签,例如,

然后,我使用文件!!tag中的符号*.yml,例如,

0 投票
1 回答
436 浏览

c# - 如何为 Yaml.Net 指定“任何名称”字段

我正在尝试YAML使用Yaml.Net库反序列化指定的 .

例如:

要反序列化任何 YAML 文件,我们需要使用C#类来描述它:

那么,如何InfoFiles用 Yaml.Net 术语来描述该领域呢?
问题是我不知道编译时的字段名称。
所以,YamlAlias可能不会有帮助。

PS 请参阅https://dotnetfiddle.net/HD2JXM以查看结构描述示例

0 投票
1 回答
539 浏览

c# - yamldotnet 序列化中的输出 yaml 中的空字符

我正在尝试使用 YamlDotNet 库来序列化一个可能包含以回车开头的字符串的结构。当我序列化数据时,我得到了一个包含空字符的奇怪输出。

呈现为 :

蜜蜂?是一个空字符。(十六进制序列是编码为 UTF-8 的输出中的字节值)

有关信息,我正在使用带有框架 3.5 的 Visual Studio 2008(以及迄今为止最新的 yamldotnet 版本 3.8.0,但带有框架 4.5 的 dotnetfiddle.net 显示与 yamldotnet 3.8.0 相同的问题)

它看起来像一个错误,但我可能滥用了 api。

  • 我的代码中某处有错误吗?

  • 如果它是 yamldotnet 中的错误,有没有办法通过让 yamldotnet 使用"\nbar"语法而不是>- ... 语法来格式化 yaml 来解决?

作为参考,这里是 dotnetfiddle.net 的链接,显示了问题:https ://dotnetfiddle.net/jqVcL3

0 投票
1 回答
227 浏览

c# - 无法使用 YamlDotNet 序列化 KeyValuePair

我正在编写一个简单的类来序列化我的IConfiguration接口,它具有以下方法

在我的课堂上,我有一个方法

但是Serializer不会向流中写入任何内容。我读到的某个地方KeyValuePair是不可序列化的,但现在不再是这种情况了(它在 .NET 2.0 中)

我首先尝试将 转换IEnumerableList(使用.ToList()),但没有任何改变。然后我尝试创建一个类来代替KeyValuePair

但它仍然不起作用。

0 投票
1 回答
404 浏览

c# - 如何保留双引号 + 防止 YAML 输出中出现奇怪的数字

我的应用程序正在加载和分析一个嵌套的 YAML 文件,使用 RepresentationModel 提取每个键/值对。一些将被更改,然后我写回 YAML 文件。输入文件为:

但输出文件看起来像

  • 使用 Yaml.Save() 时如何保留输入文件中的双引号?
  • 这个奇怪的数字 &1735269872 是什么以及如何防止它在保存 YAML 时被写入?在较长的文件中,其他数字出现在不同的位置。
  • 是否可以在浏览 YAML 时保留评论,甚至更好地访问它们?
0 投票
6 回答
8299 浏览

c# - 如何使用 YamlDotNet 将 JSON 转换为 YAML

我正在尝试使用 YamlDotNet 将 JSON 转换为 YAML。这是我的代码:

这是我提供的 JSON:

这是我期望的 YAML:

但是,这是我得到的输出:

我不知道为什么所有属性都是空数组。

我还尝试了像这样的类型化反序列化和序列化:

但这会产生

任何帮助深表感谢。

0 投票
0 回答
121 浏览

c# - 使用 YamlDotNet 读取 Ruby 生成的 YAML 文件

我在使用 YamlDotNet.RepresentationModel 读取 Ruby Yaml 文件时遇到了 2 个问题。文件

当使用 yamllint.com(似乎为 Ruby 优化)进行测试时是有效的。当检查重复的 id 以及非特定标签中的感叹号被删除。

YamlDotNet 给出了一个错误,首先是重复的 id,当为非特定标签删除它时(解析标签时,没有找到预期的标签 URI。)

关于如何解决这两个问题的任何想法?

感谢您的任何反馈

0 投票
2 回答
9750 浏览

c# - 从 c# 动态构建 Yaml 文档

是否可以使用 Yaml.DotNet 或其他库从 c# 动态构建 Yaml 文档?

我了解如何使用序列化来完成此操作,但这需要从对象结构开始。

我正在寻找一种方法来动态创建 Yaml 文档节点,就像使用 Xml 使用 XElement.Add(object) 方法一样。

0 投票
2 回答
1195 浏览

yamldotnet - YamlDotNet !!二进制类型

我正在尝试使用 yaml 发送二进制数据,即字节数组。根据 yaml 文档Yaml Binary Type,这是受支持的。在 Java 端,我使用 SnakeYaml,如果传递了 byte[] 的值,那么 yaml 会正确给出 !!binary。

YamlDotNet 中似乎“开箱即用”不支持此功能。下面的代码片段创建了一个整数值序列:

输出如:

但我想要更多类似的东西:

任何人都可以推荐一个解决方法吗?

0 投票
1 回答
1135 浏览

c# - 如何在 YamlDotNet 中指定序列化自定义类型?

这是我的简单类,其中 DigitalStorage 是二进制可序列化类。它的源代码可以在这里找到:

https://github.com/QualiSystems/Toscana/blob/master/Toscana/Domain/DigitalStorage.cs

当我尝试反序列化以下 YAML 时,它失败了:

这是一个例外: