private Props PropsFromProto(Proto.Msg.PropsData protoProps) { var actorClass = Type.GetType(protoProps.Clazz); var args = new object[protoProps.Args.Count]; for (int i = 0; i < args.Length; i++) { args[i] = system.Serialization.Deserialize( protoProps.Args[i].ToByteArray(), protoProps.SerializerIds[i], protoProps.Manifests[i] ); } return(new Props(DeployFromProto(protoProps.Deploy), actorClass, args)); }
// // Props // private Proto.Msg.PropsData PropsToProto(Props props) { var propsBuilder = new Proto.Msg.PropsData(); propsBuilder.Clazz = props.Type.TypeQualifiedName(); propsBuilder.Deploy = DeployToProto(props.Deploy); foreach (var arg in props.Arguments) { var tuple = Serialize(arg); propsBuilder.Args.Add(ByteString.CopyFrom(tuple.Item4)); propsBuilder.Manifests.Add(tuple.Item3); propsBuilder.SerializerIds.Add(tuple.Item1); propsBuilder.HasManifest.Add(tuple.Item2); } return(propsBuilder); }