Skip to main content
 首页 » 编程设计

c#之对 C# Web 服务的静态引用

2024年01月12日29qq78292959

在下面的代码中,我静态创建了对我的 Web 服务的引用,并在许多 Web 服务调用中使用相同的引用。

你们看到这种重用 Web 服务引用的模式有什么问题吗?

namespace Delegate 
{ 
    public sealed class SingletonDocDelegate 
    { 
       private SingletonDocDelegate() {} 
       public static readonly var Instance = new SingletonDocDelegate();         
       //Web Service Reference 
       private readonly var _globalDocWS   = new Document.GlobalDocWS(); 
       public string GetTransactionalDocuments(string request) 
       { 
           return _globalDocWS.GetTransDocuments(request); 
       } 
    } 
} 

请您参考如下方法:

不好。通过这样做,您将在同一个线程上调用所有内容,这可能会导致速度下降问题。基本上你会一遍又一遍地使用同一个客户端来处理所有事情,如果你每 60 秒发出一次请求就没问题,但对于更密集的事情你就会遇到瓶颈。

理想情况下,如果您希望它被多个项目隔离和访问,例如对 OData 服务的引用,您可以将它添加到一个新的类库项目中,然后让它单独存在。由于它本身不引用任何内容,因此您可以在项目的任何地方轻松使用它。