使用Protobuf-net定制典型序列化

时间:2014-03-06 20:10:39

标签: c# serialization protocol-buffers protobuf-net

是否可以将protobuf-net与自定义类型序列化一起使用?

这是我所拥有的一个伪示例

  //some user defined type
  public class SomeMessage 
  {
       public ActorRef ActorRef {get;set;}
  }

  //classes in my framework
  public abstract ActorRef
  {
       public string Path {get;set;}
  }

  public class FooActorRef : ActorRef
  {
  }

  public class BarActorRef : ActorRef
  {
  }

我需要将所有“ActorRef”类型序列化为相同类型,我只需要存储“路径”并忽略其余部分。 我还需要能够在这里拦截/解决“ActorRef”的反序列化。 因此,当反序列化器找到一个序列化的“路径”时,我需要它来调用我的自定义处理程序并以这种方式解析ActorRef。

所以,ActorRef的自定义序列化和反序列化以及它的子类型。 e.g。

  //I want something like this to be called upon deserialization..
  public ActorRef DeserializeActorRef(SerializerSpecificData x)
  { 
          var path = x.Path;
          return myContext.ResolveActorRef(path);
  }

1 个答案:

答案 0 :(得分:0)

我使用“代理人”解决了这个问题,这正是我在这里所需要的。