【问题标题】:Singleton versus Static: Best practice of web service client declaration单例与静态:Web 服务客户端声明的最佳实践
【发布时间】:2011-08-19 03:02:32
【问题描述】:

我有 2 个 ASMX 类型的 Web 服务。它目前在 App.cs 中声明为静态的。 我在想 Web 服务客户端声明的静态实例和单例实例之间有什么区别。

在静态中我需要做的就是创建这个变量

static PreferencesWSSoapClient _preferenceWS;

还有一个属性

public static PreferencesWSSoapClient PreferenceWS
    {
        get 
        {
            if (_preferenceWS == null)
            {
                _preferenceWS = new PreferencesWSSoapClient("PreferencesWSSoap", PrefUri.ToString());
            }
            return _preferenceWS; 
        }

    }

在单例中,我需要创建一个单例类。

问题是Web服务客户端声明的静态实例和单例实例有什么区别?

Web 服务客户端声明的最佳做法是什么?

【问题讨论】:

    标签: silverlight-4.0 static singleton asmx webservice-client


    【解决方案1】:

    为每个请求创建一个新的客户端对象更安全。不仅仅是因为一个生命周期等于应用程序的静态 webclient 实例本身就是一个级别:) 让我来证实一下我的想法。

    如果您在 Silverlight 中使用 Web 服务客户端,这意味着您只能在异步模式下使用它。它将需要使用事件处理程序来获取结果。如果您在应用程序中只有一个客户端实例,则更容易犯事件附加错误(我的意思是,同一侦听器的多个分配可能变得很可能并且经常出现问题)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 2011-04-27
      • 2020-08-15
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2020-11-11
      相关资源
      最近更新 更多