2011-08-22 49 views

回答

0

参数类型和返回类型需要为可序列化的或WCF以特殊方式处理。

对于第一种情况,[DataContract][DataMember]只是使类型可序列化的一种方法 - http://blogs.msdn.com/b/sowmy/archive/2006/02/22/536747.aspx的帖子描述了WCF中的序列化编程模型。正如Ladislav所说,从.NET 3.5 SP1开始,WCF引入了一个默认(POCO)序列化,因此您根本不需要任何注释。

对于第二种情况,有一些类型的被视为特殊情况由WCF,如System.IO.StreamSystem.ServiceModel.Channels.Message - 如果你使用,你甚至可以添加更多的这种类型的一个custom message formatter(虽然这是一种先进的方案,而不是很常见)。

3

它仅在WCF(.NET 3.0)的第一个版本中才需要。在引入默认数据合约序列化之后,您不必将DataContract属性放置在类中,并且所有具有getter和setter的公共属性都将被序列化。一旦你想更好地控制序列化,你将使用DataContractDataMember属性,或者你将切换到Xml序列化。

+0

感谢@Ladislav Mrnka,RequestMessage和ResponseMessage是自定义类。这些被认为是POCO,并在WCF 4.0中默认序列化? –

相关问题