相关疑难解决方法(0)

寻求使用C#读取.yaml文件的指导

两个月后:我试图解析的YAML(Eve Online blueprint.yaml)文件改变了大量的交易,这也使得使用de deserializer更容易解析.如果某人(无论出于何种原因)想要查看代码,请在https://github.com/hkraal/ParseYaml上更新


根据Steve Wellens的评论,我已经调整了代码,以便一次做更少的事情.错误本身并不重要.我在我的解决方案中创建了另一个项目(Example1)来测试我之前引用的aaubry.net上的实际示例.

当使用"动态"键导致我当前的结论时,它给了我同样的错误:两者之间存在差异:

items:
    - part_no:   A4786
Run Code Online (Sandbox Code Playgroud)

items:
    part_no:   A4786
Run Code Online (Sandbox Code Playgroud)

第一个是在我(错误地)假设我可以应用于使用第二种语法的.yaml文件的示例中使用的.

现在,我仍然需要了解如何使用我的yaml文件中使用的语法来获取密钥的"子元素"...


当C#在工作中使用时,我开始考虑一个很好的项目来学习语言的各个方面,同时有一个直接的目标来努力.但是我在解析Yaml文件的项目中很早就打到了我的第一个墙.我的目标是创建YamlBlueprint.cs中定义的YamlBlueprint对象列表,但我甚至没有到达Yaml文件的末尾.

我在github上设置了一个测试用例来演示这个问题:https: //github.com/hkraal/ParseYaml

http://www.aaubry.net/page/YamlDotNet-Documentation-Loading-a-YAML-stream上的示例可以运行,直到我想循环这些项目.基于我所看到的,我应该能够将myKey作为参数提供给YamlScalarNode()来访问它下面的项目.

var items = (YamlSequenceNode)mapping.Children[new YamlScalarNode(myKey)];
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我会得到以下错误:

An unhandled exception of type 'System.InvalidCastException' occurred in yamldotnet.exe
Additional information: Unable to cast object of type 'YamlDotNet.RepresentationModel.YamlMappingNode' to type 'YamlDotNet.RepresentationModel.YamlSequenceNode'.
Run Code Online (Sandbox Code Playgroud)

当将"items"作为参数传递给YamlScalarNode()时,它只是抱怨项目不在那里是预期的.由于我不确定我的Toughttrain哪里出错了,我会对如何进一步排除故障有所帮助.

.net c# yamldotnet

5
推荐指数
1
解决办法
8805
查看次数

标签 统计

.net ×1

c# ×1

yamldotnet ×1