抽象类中的ProtoInclude——dll之间不能相互了解
本文关键字:不能 了解 之间 dll ProtoInclude 抽象类 | 更新日期: 2023-09-27 18:17:45
我们有以下场景:
dll1中的抽象类
在dll2中从它继承的类。
dll2引用dll1。(所以我们不能引用子类-循环依赖)
我们如何ProtoInclude
子类?类型是未知的。
请提供运行时模型的示例文档,如果这是唯一的方法。
两个选项:
-
使用字符串版本的程序集限定名称,而不是
typeof()
-听起来很脆弱,但实际上是多少。net BCL挂在一起(参见典型的BCL使用:EditorAttribute
,TypeConverterAttribute
等)[ProtoInclude("Full.Namespace.Type, Assembly, ...")]
(它也应该只适用于类型+程序集,但完全版本化可能也有帮助)
-
在运行时(仅在v2中可用)在跨越两个程序集的应用程序代码中进行绑定:
RuntimeTypeModel.Default[typeof(BaseType)].AddSubType(13, typeof(SubType));