首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在YamlDotNet中序列化子类

在YamlDotNet中序列化子类
EN

Stack Overflow用户
提问于 2015-09-18 17:41:07
回答 1查看 444关注 0票数 0

我正在尝试在我的应用程序中添加YAML序列化/反序列化。我的类结构是这样的,有几种类型是从一个基类派生出来的。当我试图序列化一个子类时,YamlDotNet似乎不包含特定于子类的属性。作为一个简化的例子:

代码语言:javascript
复制
Public Class BaseGrammar
    <YamlIgnore>
    Public Property FilePath As String

    Public Overridable Property Name As String
    Public Overridable Property Author As String
    Public Overridable Property Description As String
    Public Overridable Property Tags As BindingList(Of String)
End Class

Public Class AssignmentGrammar
    Inherits BaseGrammar

    Private _items As BindingList(Of  Item)

    Public ReadOnly Property Items As BindingList(Of Item)
    Get
        Return _items
    End Get
End Class

Public Class Item
    Public Property Name As String
    Public Property Value As String
End Class

使用以下代码序列化:

代码语言:javascript
复制
Public Shared Sub ConvertXMLToYAML(ByVal sourcefileName As String,
                                   ByVal targetFileName As String)
    Dim grammar As BaseGrammar = OpenXML(sourcefileName)
    Dim serializer As New YamlDotNet.Serialization.Serializer(YamlDotNet.Serialization.SerializationOptions.Roundtrip)
    Using output As IO.TextWriter = IO.File.CreateText(targetFileName)
        serializer.Serialize(output, grammar)
    End Using
End Sub

产生以下YAML:

代码语言:javascript
复制
!Grammars.Assignment.AssignmentGrammar,%20Grammars,%20Version=1.0.0.1,%20Culture=neutral,%20PublicKeyToken=null
Name: Urban Gangs
Author: Lance Boudreaux
Description: Generates gangs for urban adventures.
Tags:
- Gang
- Encounter
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 16:31:13

问题似乎是,我在子类上的列表是一个只读属性,而YAML序列化程序不支持这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32657998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档