一个简单的问题,但我在谷歌中找不到答案。
Web 服务类实例化的频率是多少?是每次调用网络服务一次,是每次(任意时间段)一次,还是每次其他事情一次?
编辑
我希望这个类(class)能长久地生活下去,但事实似乎并非如此。
重点是,我有一个用于服务请求的资源,并且每次重新加载该资源不是一个选项(相反,加载一次是一个选项,并且性能非常好 - 和其他 -明智的,只是简单的“明智”)。 (不,没有人会感到不安,资源不会被阻止或发生其他情况。)
那么如何在 Web 服务中拥有一个对象,可以使用该对象的单个实例来服务所有请求? 抱歉,如果问题的答案过于明显,例如“使用静态变量”。作为一名经验丰富的程序员,我仍然没有正确地了解网络编程,并且仍然对一些一般概念感到困惑。
最佳答案
创建 Web 服务客户端后,您可以根据需要调用任意数量的方法,而无需创建新的方法。
因此,没有必要为每个调用创建一个新的客户端实例。虽然你当然可以。没有什么能阻止你。
例如,如果您从另一个 Web 服务的不同方法中使用某个 Web 服务,我认为最好在每个方法中创建一个新的 Web 服务客户端。 (由于 Web 服务的性质,Web 服务调用之间可能有很多时间。)
OTOH,如果您从 Windows 客户端应用程序内部使用 Web 服务,则可以轻松创建 Web 服务客户端的一个全局实例,并始终使用该实例来调用 Web 服务。
关于ASP.NET:WebService 类实例化的频率是多少?如何在其中制作一个持久对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117582/