0

我有StatefulService一个方法。该方法的第一个参数接受与我的一个 Actor 对应的接口类型。Actor 使用 调用服务方法ServiceProxy,并作为第一个参数传入this。这会编译文件。签名匹配。

但是,在运行时,我收到一个关于 IMyActorType 类型不为DataContractSerializer. 我知道这条消息意味着什么。不ServiceProxy处理ActorReferences?我知道ActorProxy工作。我可以使用ActorProxy.

或者这可能是我的配置中的一些问题StatefulService?我的ServiceReplicaListener设置有什么问题吗?

StatefulService我现在已经通过将我的方法的方法签名更改为ActorReference. 序列化很好,我可以在另一边打开它。但是,我宁愿有正确的打字。

4

2 回答 2

2

Service Proxy 不像 Actor Proxy 那样处理 Actor 引用。服务栈独立于参与者并且不知道参与者引用。您可以传递参与者引用(https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.get.aspx)然后绑定(https: //msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.actorreference.bind.aspx ) 对接收端参与者接口类型的参与者引用。您可以将绑定方法的输出强制转换为参与者接口。

于 2015-12-02T18:36:12.940 回答
0

您需要传递一个简单的 DataContract 装饰的 POCO 而不是接口。DataContractSerializer 不能在接口上工作。适用于 WCF 的相同规则也适用于 Service Fabric。

于 2015-12-01T02:21:09.277 回答