WCF服务具有两种方法—一种用于结构化结果,另一种用于原始XML结果。有更好的办法吗?
我正在设计一个WCFWeb服务方法,它可以根据客户机的偏好以原始XML字符串或结构的形式返回结果 一种简单的方法是采用两种不同的方法: MyStructure GetData(); string GetDataAsXML(); MyStructure GetData(); 字符串GetDataAsXML();WCF服务具有两种方法—一种用于结构化结果,另一种用于原始XML结果。有更好的办法吗?,xml,wcf,wsdl,Xml,Wcf,Wsdl,我正在设计一个WCFWeb服务方法,它可以根据客户机的偏好以原始XML字符串或结构的形式返回结果 一种简单的方法是采用两种不同的方法: MyStructure GetData(); string GetDataAsXML(); MyStructure GetData(); 字符串GetDataAsXML(); 这应该可以很好地工作,但考虑到这两种情况下的导线表示是相同的(或至少是等效的),我想知道是否有更好的方法在接口中表示这一点?例如,有没有一种优雅的方法可以将这两种方法合并为一种方法?嗯,无
这应该可以很好地工作,但考虑到这两种情况下的导线表示是相同的(或至少是等效的),我想知道是否有更好的方法在接口中表示这一点?例如,有没有一种优雅的方法可以将这两种方法合并为一种方法?嗯,无论哪种方法,您的结果都将是XML。一个看起来像这样
<Response>
<SomeTags>
<SomeTag />
<SomeTag />
<SomeTag />
</SomeTags>
</Response>
<Response>
<Data>
<SomeTags>
<SomeTag />
<SomeTag />
<SomeTag />
</SomeTags>
</Data>
</Response>
另一个看起来像这样
<Response>
<SomeTags>
<SomeTag />
<SomeTag />
<SomeTag />
</SomeTags>
</Response>
<Response>
<Data>
<SomeTags>
<SomeTag />
<SomeTag />
<SomeTag />
</SomeTags>
</Data>
</Response>
一些标签
某物标签/
某物标签/
某物标签/
/一些标签
我只会坚持第一种方法,让您的客户了解他们想要如何解析信息。为什么不只使用GetData()-然后让客户决定是否将其反序列化?只提供GetData()的主要问题是性能。如果客户机需要XML,直接返回XML会更有效,而不是让客户机代理将其反序列化,然后让客户机应用程序再次将其序列化为XML。我支持Jeremy的建议-只要使用“MyStructure”,如果客户机真的需要原始XML,它总是可以序列化为XML—我认为工作起来容易得多—而且我不确定它是否真的会对性能造成那么大的影响(我怀疑—先测量它,然后再过早地优化!)@Dylan:这都是XML在线。总是。此外,我怀疑您是否会注意到反序列化的开销,尤其是在使用数据契约的情况下。它们相当快。