1

我开始考虑使用 proto-buf .Net 来满足媒体浏览器的序列化需求。

在新系统中,我们有一个可以用插件扩展的实体框架。

所以,比如我们在核心库中定义一个Media类,然后插件就可以定义Song等子类。

似乎 proto-buf .Net 需要了解我们核心定义的基类的所有子类型。

所以我应该用

[ProtoInclude(2, typeof(Song))]

但是……那时我对尚不存在的 Song 类一无所知。

是不是又回到了绘图板上?我是否正在尝试做一些图书馆不适合做的事情?

4

1 回答 1

1

(来自作者)

在当前版本中,它被固定为父级已知的类型。然而,这是一个已知的限制,因此有一个计划来抽象元模型,以便它可以在运行时单独提供 - 与您提供此类信息的方式大致相当XmlSerializer(它仍然需要一种提供标签的方法(上面的“2”)每种类型)。

我已经开始了这项工作,但我预计需要几周时间才能使其完全正常工作(重构还将与其他一些更改相关联以帮助紧凑框架)。

所以由你决定......如果你能等几个星期,我希望有一些工作。

请注意,您仍然需要某种方式为所有不同的子类型(配置等)生成(唯一的、可重复的)标签。

于 2009-03-26T08:21:20.597 回答