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
序列化器序列化。