我在这里开了一张票,但希望有人可以简单地回答。
YamlDotNet 不支持 ISerializable,但 Json.Net 支持。因此,作为一种解决方法,我们首先尝试将我们的对象序列化为 JObject,这尊重我们的序列化设置并且只序列化适当的属性。然后,我们想将我们的 JObject 发送到 YamlSerializer,但是我们得到了这个错误:
“对象与目标类型不匹配”
我在这里开了一张票,但希望有人可以简单地回答。
YamlDotNet 不支持 ISerializable,但 Json.Net 支持。因此,作为一种解决方法,我们首先尝试将我们的对象序列化为 JObject,这尊重我们的序列化设置并且只序列化适当的属性。然后,我们想将我们的 JObject 发送到 YamlSerializer,但是我们得到了这个错误:
“对象与目标类型不匹配”
根据以下帖子的建议可用作解决方法: 如何使用 YamlDotNet 将 JSON 转换为 YAML
即使用动态 Expando 对象将 JSON 转换为 YAML。
例子:
var expConverter = new ExpandoObjectConverter();
var jsonString = JsonConvert.SerializeObject(anyObject);
var expandoObject = JsonConvert.DeserializeObject<ExpandoObject>(jsonString, expConverter);
var textInYamlFormat = serializer.Serialize(expandoObject);