建议选择正确的WCF实例模式

时间:2013-08-28 05:36:16

标签: wcf serialization

我是海德拉巴的巴鲁。我为Andriod / Iphone开发人员编写了WCF Restful服务()他们可以使用JSON格式,以便我们选择REST)。实际上我们只能在Mobile Application上运行一个可以运行不同项目的APP。所有项目都是动态的,从WEBSERVICE到MobileApp。因此,我们只能从Web服务配置所有动态数据。

只有一个应用程序可以处理5个项目,共有100-150个用户。所以我只能使用Factory Reflection方法编写一个服务来动态加载项目。

问:我怀疑对于我们的项目哪个WCF实例模式适合? 通过阅读WCF实例模式文章,我理解“percall”实例适用于我们的WCF服务。我的猜测是否正确?请建议我。 我还有一个疑问,如果我们没有将属性指定为序列化,那么该对象将无法正常通过网络?我试过没有序列化(即没有提到特定属性的“datamember”)它顺利移动应用程序。 请澄清我的疑惑并告诉我我必须使用的实例模式?

  1. 哪个实例更好?
  2. 哪种ConcurrencyMode更好?

1 个答案:

答案 0 :(得分:1)

当您不需要在同一客户端的呼叫之间维护状态时,首选 PerCall 实例模式。换句话说,您的服务是无国籍的。当您需要在客户端的调用之间维护某种状态时,使用 PerInstance 。最后,当您需要在多个客户端之间引用状态时,使用 Singleton 。根据您的绑定和安全设置,您将默认使用PerCall或PerInstance。 PerCall非常理想,因为如果需要,您可以更轻松地扩展服务。

对于ConcurrencyMode,默认为单线程。既然你问,我建议把它作为默认值(通常)。但是,看看我谈到的here这个棘手的案例。

从.NET Framework 3.5开始,不需要[DataContract]和[DataMember]属性。在该版本之前,您必须明确并指定这些属性。