2017-04-20 51 views
0

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

这是个好主意,做这样的事情在我Startup

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

据我所知,所有ServiceProxy.Create()很“简单”,只是代理的电话 - 所以这个?听起来足够安全吗?

回答

2

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

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

+0

辉煌,谢谢! – Mardoxx