我有一个ASP.net核心应用程序需要使用服务远程控制来调用服务。
在我的Startup
中做这样的事情是个好主意吗?:
services.AddSingleton<IHelloWorldService>(ServiceProxy.Create<IHelloWorldService>(new Uri("fabric:/Demo/HelloWorldService")));
据我所知,所有ServiceProxy.Create()
都非常“简单”,只是代理呼叫 - 所以这听起来很安全吗?
答案 0 :(得分:2)
在代理对象始终有效的意义上,这样做是安全的。关于这一点的好处是你有一个非常熟悉的模式,你可以像在域驱动的应用程序中一样注入服务接口。
如果fabric:/ Demo / HelloWorldService是分区,那么这不会很好,因为你需要为每个分区一个新的代理。在这种情况下,您应该注入一个IServiceProxyFactory,它可以用于为不同的分区创建代理,并且仍然可以模拟出来进行单元测试。