[英]Send non-DataContract class to Azure Service Fabric Actor
Service Fabric需要[DataContract]
和[DataMember]
属性用于所有用作Actor服务的输入参数的类。
有没有办法覆盖这个默认值?
在我们的项目中,我们大量使用只读消息类,它们具有只读属性和构造函数。 序列化由Newtonsoft JSON序列化程序处理,它运行得很好。 现在,我想在Service Fabric中发送此消息,因此我需要一种方法来覆盖类似JSON序列化程序的默认类WCF序列化。
我能够通过自己实现序列化来解决这个问题。 基本上,这是它的工作原理:
定义一个接受并返回byte[]
+类型名称的actor(+ contract),例如
Task<byte[]> DoWork(string typeName, byte[] message);
使用自定义序列化程序将byte[]
反序列化为指定类型的实例(我使用的是Newtonsoft JSON转换器)。
在发送端,使用相同的序列化器将对象序列化为byte[]
。
我定义了一些基类来包装它,所以我不必为每个actor / client重复它。
这感觉有点哈哈。 很高兴从Service Fabric团队获得一些意见。 从平台本身获得本机扩展点会更好。 DataContract
感觉有点陈旧,它不再用于我们项目的任何地方。
在我的博客文章中更详细地描述了这种方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.