c#如何在客户端管理wcf服务代理生命周期?

Mis*_*sky 3 .net c# service wcf client

我编写了一个具有一些常规功能的WCF服务(添加用户,删除,搜索,更新......).此功能的实现在实体框架中(使用sql DB).

现在我想在客户端使用它.我有一些基本问题:

  1. 我在客户端有很多调用WCF方法 - 我应该每次调用时都尝试捕获吗?
  2. 每次我想调用一个方法,例如AddUser(用户用户)时,我需要创建一个我的服务实例,如下所示:

    WcfService client = new WcfService();
    client.AddUser(user);
    
    Run Code Online (Sandbox Code Playgroud)

    在我写的另一个地方:

    WcfService client = new WcfService(); //Again making a new instance...
    client.UpdateUser(user);
    
    Run Code Online (Sandbox Code Playgroud)

我应该为我的wcf服务的所有应用程序创建一个实例吗?或者每次在调用方法之前创建一个新实例?(如上面的例子).

非常感谢 !

Sey*_*our 6

在许多情况下,您希望重用相同的客户端代理,因为此连接方法可以产生最佳性能.如果您使用具有较高初始安全协商成本的安全功能,则重用相同的代理会特别有用.注意:在使用之前,您确实需要检查客户端代理的状态.

如果不能重用相同的客户端代理,则考虑使用使用缓存的ChannelFactory代理.

以下链接提供了一个很好的解释以及最佳实践建议:http: //blogs.msdn.com/b/wenlong/archive/2007/10/27/performance-improvement-of-wcf-client-proxy-creation-and -best-practices.aspx