Dapr actor .NET 使用指南

    在一个 类或其他ASP.NET Core项目中,你应该使用 IActorProxyFactory 接口来创建 actor 客户端。

    AddActors(...) 方法将通过 ASP.NET Core 依赖注入注册 actor 服务。

    • 在一个 actor 实例中,IActorProxyFactory 实例作为一个属性(this.ProxyFactory)可用。

    下面是一个在 actor 内部创建代理的例子。

    为了与 actor 进行通信,你需要知道它的类型和id,对于强类型的客户端,需要知道它的一个接口。 IActorProxyFactory 上的所有API都需要一个 actor 类型和 actor id。

    • Actor 类型唯一地识别了 actor 在整个应用中的实现情况。

    如果您没有actor id,并且想要与新的实例进行通信,您可以使用 ActorId.CreateRandom() 来创建一个随机的id。 由于随机 id 是一个加密的强标识符,所以当你与它交互时,运行时将创建一个新的 actor 实例。

    你可以使用 ActorReference 类型与其他actor交换 actor类型和actor id作为消息的一部分。

    Actor客户端支持两种不同风格的调用。使用.NET接口的强类型客户端和使用 ActorProxy 类的弱类型客户端。

    使用 CreateActorProxy<> 来创建一个强类型的客户端,比如下面的例子。 需要一个actor接口类型,并将返回该接口的实例。

    使用弱类型客户端

    使用 Create 方法来创建一个弱类型客户端,比如下面的例子。 Create 返回一个 ActorProxy 的实例。

    由于 ActorProxy 是一个弱类型的代理,你需要将 actor 方法名作为一个字符串传入。

    您也可以使用 ActorProxy 来调用带有请求消息和响应消息的方法。 请求和响应消息将使用 System.Text.Json 序列化器序列化。