在 F# 中区分远程参与者之间的联合 Akka.Net

Discriminating unions between remote actors in F# Akka.Net

我在本地机器上有一个演员,在远程机器上有一个演员。是否可以使用远程演员与本地演员的判别联合进行模式匹配。这是我正在尝试的,

远程演员:

本地演员:

我想像这样从本地演员向远程演员发送消息。但是我无法从本地演员发送 Task1 类型。任何帮助都是可观的

提前致谢。

Akka.NET v1.4 默认使用 Newtonsoft 的 JSON 序列化程序,它不能很好地处理可区分的联合。如果切换到 new Hyperion serializer,它应该可以正常工作。将以下内容添加到您的配置中:

akka {
  actor {
    serializers {
      hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
    }
    serialization-bindings {
      "System.Object" = hyperion
    }
  }
}

然后您可以毫无问题地发送和接收受歧视的联盟。 Hyperion 将成为 Akka.NET v1.5.

中的默认序列化程序