Generics 如何在protobuff net中注册泛型类的代理?

Generics 如何在protobuff net中注册泛型类的代理?,generics,protobuf-net,Generics,Protobuf Net,我有一个泛型类,PropertyCollection。因为它包含一个具有对象类型值的集合,所以我必须使用代理。诀窍是,我想对传入的TKey中的所有可能类型执行一次 对于单一类型,我没有问题。如果我想在TKey是MyEnum时使用代理,我使用下面的代码块,它可以正常工作 RuntimeTypeModel.Default .Add(typeof(PropertyCollection),false) .SetSurrogate(类型为(PropertyCollectionsProxy)); 我的挑战

我有一个泛型类,
PropertyCollection
。因为它包含一个具有对象类型值的集合,所以我必须使用代理。诀窍是,我想对传入的
TKey
中的所有可能类型执行一次

对于单一类型,我没有问题。如果我想在
TKey
MyEnum
时使用代理,我使用下面的代码块,它可以正常工作

RuntimeTypeModel.Default
.Add(typeof(PropertyCollection),false)
.SetSurrogate(类型为(PropertyCollectionsProxy));
我的挑战是让它与
TKey
的所有值一起工作。我尝试在用
[onserialization]
属性修饰的方法中添加类型,但这不起作用,因为已经创建了序列化程序

我意识到每个
TKey
本质上都是不同的方法,所以我可能被卡住了。 是否有一种方法可以使用类后面的属性注册代理?或者我可以使用
[onserialization]
[onserialization]
属性有效地“滚动我自己的”序列化吗

在这里做任何事都会很感激的