【发布时间】:2009-08-22 23:14:20
【问题描述】:
我正在编写一个本机 C/C++ .dll 程序,该程序调用许多第三方 C/C++ 库的 .dll 函数,并返回一个 18 列、0-n 行的 c/c++ 结构数组 (SA)。然后,这个返回值被 WCF C# Web 服务程序捕获,该程序与我的 .dll 进行“互操作”,并使用 .net xml 库在将消息发送到 Web 服务客户端之前序列化结果。
我可以在这里看到开销:(a) 在 C/C++ 中准备数据以在返回之前填充 SA,(b) 一旦 C# Web 服务程序接收到该 SA,就将该 SA 序列化为 XML。
为了避免这种开销,我认为与其在我的 C/C++ dll 中填充 SA,不如填充到 XML 序列化的字符串或文件中,然后将此结果返回给 C# Web 服务程序,该程序只会发送已经将数据直接序列化到客户端。
此时我想知道:
1) 如果我的想法是正确的。
2) 如果是,除了将数据填充到 XML 中之外,我还想包括 - 作为标题 - 列的名称、长度和数据类型。有人说我应该创建一个 XSD 字符串/文件来描述该标头。您对此有何看法?
3) 我应该在 C# 程序中考虑哪些事项才能避免返回 XML 数据出现问题? XSD 数据?
感谢您阅读本文。
【问题讨论】: