Azure service fabric 我应该如何将服务结构参与者联系在一起?

Azure service fabric 我应该如何将服务结构参与者联系在一起?,azure-service-fabric,Azure Service Fabric,我有许多参与者代表一个物理对象(物联网设备) 在检查代码库时,我们有时会将现有的ActorReference传递给其他参与者,有时会创建一个新的代理对象 我本以为传递一个现有的参与者引用更有效,但我担心会有副作用,因此创建一个新的代理对象的风险似乎更低 在使用ACTRORACKION.BIN和ACTROPROSPORATION研究反编译的源代码时,我应该考虑什么样的方法和什么样的方法?< /P> < P>。 public object Bind(Type actorInterfaceType)

我有许多参与者代表一个物理对象(物联网设备)

在检查代码库时,我们有时会将现有的ActorReference传递给其他参与者,有时会创建一个新的代理对象

我本以为传递一个现有的参与者引用更有效,但我担心会有副作用,因此创建一个新的代理对象的风险似乎更低


在使用ACTRORACKION.BIN和ACTROPROSPORATION研究反编译的源代码时,我应该考虑什么样的方法和什么样的方法?< /P> < P>。
public object Bind(Type actorInterfaceType)
{
    return ActorProxy.DefaultProxyFactory.CreateActorProxy(actorInterfaceType, this.ServiceUri, this.ActorId, this.ListenerName);
}

public static TActorInterface Create<TActorInterface>(ActorId actorId, string applicationName = null, string serviceName = null, string listenerName = null) where TActorInterface : IActor
{
    return ActorProxy.DefaultProxyFactory.CreateActorProxy<TActorInterface>(actorId, applicationName, serviceName, listenerName);
}
公共对象绑定(类型actorInterfaceType)
{
返回ActorProxy.DefaultProxyFactory.CreateActorProxy(actorInterfaceType,this.ServiceUri,this.ActorId,this.ListenerName);
}
公共静态TActorInterface创建(ActorId ActorId,string applicationName=null,string serviceName=null,string listenerName=null),其中TActorInterface:IActor
{
返回ActorProxy.DefaultProxyFactory.CreateActorProxy(actorId、applicationName、serviceName、listenerName);
}
因此,在可靠性和性能上都没有区别


ActorReference
支持序列化,因此它似乎更适合在参与者之间传递

传递ActorReference是更好的推荐方法,因为它允许您在接收端使用自定义ActorProxy工厂创建ActorProxy。如果参与者作为接口传递,反序列化过程将使用默认的参与者代理工厂将引用绑定到代理,并将代理对象提供给接收方法。

将同意@MaGu-这两种方式都必须创建代理对象,因此没有区别。所以唯一的问题是序列化。如果只传递actor id,它将比ActorReference更有效。