ServiceFabric StatefulService 方法传递 Actor Proxy DataContract 错误
ServiceFabric StatefulService method passed Actor Proxy DataContract error
我有一个StatefulService
方法。该方法的第一个参数接受与我的一个 Actors 对应的接口类型。 Actor 使用 ServiceProxy
调用服务方法,将 this
作为第一个参数传入。这个编译文件。签名匹配。
然而,当 运行 时,我收到有关 DataContractSerializer
未知的意外 IMyActorType 类型的错误。我知道这条消息是什么意思。 ServiceProxy
不处理 ActorReferences
吗?我知道 ActorProxy
有效。我可以使用 ActorProxy
.
将一个 Actor 传递给另一个 Actor
或者这可能是我配置 StatefulService
的一些问题?我的 ServiceReplicaListener
设置有问题吗?
我现在通过将 StatefulService
方法的方法签名更改为 ActorReference
来解决这个问题。序列化很好,我可以在另一边解压它。但是,我更希望输入正确。
您需要传递一个简单的 DataContract 修饰的 POCO 而不是一个接口。 DataContractSerializer 不会在接口上工作。适用于 WCF 的相同规则也适用于 Service Fabric。
Service Proxy 不像 Actor Proxy 那样处理 Actor 引用。服务堆栈独立于参与者并且不知道参与者引用。除了传递参与者接口,您还可以将参与者引用 (https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.get.aspx) and then bind (https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.bind.aspx) 参与者引用传递给接收端的参与者接口类型。您可以将绑定方法的输出转换为 actor 接口。
我有一个StatefulService
方法。该方法的第一个参数接受与我的一个 Actors 对应的接口类型。 Actor 使用 ServiceProxy
调用服务方法,将 this
作为第一个参数传入。这个编译文件。签名匹配。
然而,当 运行 时,我收到有关 DataContractSerializer
未知的意外 IMyActorType 类型的错误。我知道这条消息是什么意思。 ServiceProxy
不处理 ActorReferences
吗?我知道 ActorProxy
有效。我可以使用 ActorProxy
.
或者这可能是我配置 StatefulService
的一些问题?我的 ServiceReplicaListener
设置有问题吗?
我现在通过将 StatefulService
方法的方法签名更改为 ActorReference
来解决这个问题。序列化很好,我可以在另一边解压它。但是,我更希望输入正确。
您需要传递一个简单的 DataContract 修饰的 POCO 而不是一个接口。 DataContractSerializer 不会在接口上工作。适用于 WCF 的相同规则也适用于 Service Fabric。
Service Proxy 不像 Actor Proxy 那样处理 Actor 引用。服务堆栈独立于参与者并且不知道参与者引用。除了传递参与者接口,您还可以将参与者引用 (https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.get.aspx) and then bind (https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.bind.aspx) 参与者引用传递给接收端的参与者接口类型。您可以将绑定方法的输出转换为 actor 接口。