Service Fabric Remoting服务代理DI

时间:2017-04-20 14:01:17

标签: asp.net-core azure-service-fabric

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

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

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

据我所知,所有ServiceProxy.Create()都非常“简单”,只是代理呼叫 - 所以这听起来很安全吗?

1 个答案:

答案 0 :(得分:2)

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

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