我应该在何时使用datacontract,何时在WCF中使用messagecontract
我们应该在什么基础上决定是否必须为我的WCF服务创建dataContract或MessageContract 我所知道的是,当我们需要更多地控制SOAP时,我们使用MessageContract 其次,我看到了一些代码,其中DataContract是通过MessageContract公开的。它有什么用途我应该在何时使用datacontract,何时在WCF中使用messagecontract,wcf,Wcf,我们应该在什么基础上决定是否必须为我的WCF服务创建dataContract或MessageContract 我所知道的是,当我们需要更多地控制SOAP时,我们使用MessageContract 其次,我看到了一些代码,其中DataContract是通过MessageContract公开的。它有什么用途 请提供一些真实场景。如果您需要显式接管SOAP头和主体,您可以使用MessageContracts。例如,如果您需要确保您的邮件中的信用卡号与其他类型的邮件分开加密,那么您需要获得对在线邮件的控
请提供一些真实场景。如果您需要显式接管SOAP头和主体,您可以使用MessageContracts。例如,如果您需要确保您的邮件中的信用卡号与其他类型的邮件分开加密,那么您需要获得对在线邮件的控制级别 下面是一些示例(特别是加密示例)的更多信息: 如果您只想要纯DTO,而不关心它们在线路上的形状,请使用DataContracts。这不是一个“非此即彼”的问题-如果您处理的是复合数据(而不仅仅是基本类型的int、string等),您将始终拥有数据契约。这是必然的 只有当您需要非常密切且非常具体地控制SOAP消息的布局时,才需要消息契约。在大多数情况下,超过90%的时间-你没有 消息协定允许您明确指出哪些元素(标量类型或作为数据协定的复合类型)将在SOAP头中,哪些将在SOAP正文中 如果您有一个需要非常特定格式的通信伙伴,并且您必须调整SOAP消息以完全匹配给定的布局,那么您可能需要这个。当您需要并且应该使用消息契约时,这几乎是唯一有效的场景 因此,长话短说:总是使用数据契约,实际上永远不要使用消息契约(除非你绝对地、肯定地必须这样做) 马克