Service Fabric Remoting 服务代理 DI

Service Fabric Remoting Service Proxy DI

我有一个 ASP.net 核心应用程序需要使用服务远程调用服务。

在我的 Startup 中做这样的事情是个好主意吗?:

services.AddSingleton<IHelloWorldService>(ServiceProxy.Create<IHelloWorldService>(new Uri("fabric:/Demo/HelloWorldService")));

据我所知,所有 ServiceProxy.Create() 都很漂亮 "simple" 并且只是代理调用 - 所以这听起来足够安全?

从代理对象将始终有效的意义上说,这样做是安全的。这样做的好处是你有一个非常熟悉的模式,你可以像在域驱动应用程序中一样注入服务接口。

如果 fabric:/Demo/HelloWorldService 是 partitioned,那么这不会很好,因为每个分区都需要一个新的代理。在这种情况下,您应该注入一个 IServiceProxyFactory,它可以用来为不同的分区创建代理,并且仍然可以模拟出来进行单元测试。