Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF客户端:如何优化服务调用?_.net_Wcf_Wcf Client - Fatal编程技术网

.net WCF客户端:如何优化服务调用?

.net WCF客户端:如何优化服务调用?,.net,wcf,wcf-client,.net,Wcf,Wcf Client,我正在开发一个WPF客户端,它与使用NHibernate在数据库上持久化数据的WCFWeb服务交互 我知道我可以向我的客户机添加服务引用,以便从Web服务的元数据生成类。然后,这些类将允许我通过简单地实例化对象并使用它们调用方法来与服务交互 我的问题是: 我应该简单地按原样使用这些对象,还是将服务调用“包装”到一个处理与Web服务的所有通信的类中,从而有任何可能的改进 换句话说,每次我想与我的服务进行通信时,在我的客户机中创建代理是否会带来高昂的性能代价?如果是这样,我是否需要创建一个类来“包装

我正在开发一个WPF客户端,它与使用NHibernate在数据库上持久化数据的WCFWeb服务交互

我知道我可以向我的客户机添加服务引用,以便从Web服务的元数据生成类。然后,这些类将允许我通过简单地实例化对象并使用它们调用方法来与服务交互

我的问题是:

我应该简单地按原样使用这些对象,还是将服务调用“包装”到一个处理与Web服务的所有通信的类中,从而有任何可能的改进

换句话说,每次我想与我的服务进行通信时,在我的客户机中创建代理是否会带来高昂的性能代价?如果是这样,我是否需要创建一个类来“包装”生成的类并保存通道

除了简单地创建代理并使用它与服务交互之外,您还可以推荐哪些改进


感谢

请允许我向您介绍客户端代理中有关频道缓存的内容。

请允许我向您介绍客户端代理中有关频道缓存的内容。

谢谢Jesse,我将看一看这篇文章。这可能正是我所需要的。您还应该为处理WCF如何为ClientBase继承的代理实现Dispose模式提供建议。如果您为生成的代理编写自己的包装,您需要考虑到这一点。哇,Sixto,这让我想到了,谢谢!说到这里,我也想创建自己的答案:通过阅读Jesse的链接和浏览网页,我了解到由于.NET 3.5,如果您使用SVCUTIL的自动生成代理,通道工厂会自动为您缓存(大多数情况下)。文章详细介绍了这些条件。至于Sixto的链接,您可以在此处找到处置问题的解决方案(适用于Visual Studio 2010):。此加载项将用生成正确处理异常的代理的工具替换Visual Studio的服务引用代理生成工具。简而言之,不需要包装器。:)谢谢你,杰西,我来看看这篇文章。这可能正是我所需要的。您还应该为处理WCF如何为ClientBase继承的代理实现Dispose模式提供建议。如果您为生成的代理编写自己的包装,您需要考虑到这一点。哇,Sixto,这让我想到了,谢谢!说到这里,我也想创建自己的答案:通过阅读Jesse的链接和浏览网页,我了解到由于.NET 3.5,如果您使用SVCUTIL的自动生成代理,通道工厂会自动为您缓存(大多数情况下)。文章详细介绍了这些条件。至于Sixto的链接,您可以在此处找到处置问题的解决方案(适用于Visual Studio 2010):。此加载项将用生成正确处理异常的代理的工具替换Visual Studio的服务引用代理生成工具。简而言之,不需要包装器。:)