我有一个 WCF 服务,我在我的代码中使用它并生成为 ChannelFactory 类。我知道使用 WCF 的正确方法是创建 ChannelFactory(我们称之为 AwesomeClient),完成工作,然后在其上调用 Close()。这是我的片段:
public static void DoSomething()
{
var client = new AwesomeClient();
client.DoSomethingAwesome();
client.Close();
}
但是,我希望 DoSomething 会被非常频繁地调用(比如每分钟 10 次?),所以我得到的建议是将 ChannelFactory 实例化为静态实例,并始终重用同一个实例,而不必关闭它(因为这比总是重新创建 ChannelFactory 然后关闭它“便宜”)。
我在这里征求第二意见,谁能告诉我为什么不调用 Close 并重用静态实例是个好主意?或者我应该坚持为每次通话重新创建 ChannelFactory 和 Close() 吗?