将非DataContract类发送到Azure服务结构参与者
对于用作Actor服务输入参数的所有类,服务结构需要将非DataContract类发送到Azure服务结构参与者,azure,serialization,datacontractserializer,azure-service-fabric,Azure,Serialization,Datacontractserializer,Azure Service Fabric,对于用作Actor服务输入参数的所有类,服务结构需要[DataContract]和[DataMember]属性 是否有方法覆盖此默认值 在我们的项目中,我们大量使用只读消息类,这些类具有只读属性和构造函数。序列化是由Newtonsoft JSON序列化程序处理的,它非常有效。现在,我想在ServiceFabric中发送这些消息,因此我需要一种方法将默认的类似WCF的序列化重写为类似JSON的序列化程序。不幸的是,我认为目前不可能做到这一点。从文章中, 可靠的集合允许重写序列化程序,但 可靠的行动
[DataContract]
和[DataMember]
属性
是否有方法覆盖此默认值
在我们的项目中,我们大量使用只读消息类,这些类具有只读属性和构造函数。序列化是由Newtonsoft JSON序列化程序处理的,它非常有效。现在,我想在ServiceFabric中发送这些消息,因此我需要一种方法将默认的类似WCF的序列化重写为类似JSON的序列化程序。不幸的是,我认为目前不可能做到这一点。从文章中, 可靠的集合允许重写序列化程序,但 可靠的行动者目前并不这样做。”
因此,映射到新类可能是值得的。我能够通过自己实现序列化来解决问题。基本上,这就是它的工作原理:
byte[]
+类型名称的参与者(+contract),例如
Task<byte[]> DoWork(string typeName, byte[] message);
taskdowork(字符串类型名,字节[]消息);
byte[]
反序列化为指定类型的实例字节[]
DataContract
感觉有点过时,它不再在我们的项目中的任何地方使用
我的文章中详细介绍了这种方法