所以这是背景: 我们有一个遗留程序,用C ++编写数据日志。数据包含在不同的结构中。读取日志文件的程序使用相同的结构来显示数据。我重写了读取日志文件和C#的程序,并且必须手动创建所有这些结构的C#副本。 有一个更好的方法吗?我已经考虑过建立一个结构的查找路径和一种在构建时生成C#结构的解析器,但是处理所有特殊情况似乎过于复杂。有什么建议吗? C#没有任何向后兼容性来处理C / C ++结构似乎有点荒谬。
答案 0 :(得分:1)
有多少个结构,它们有多复杂?
这是我要说的成本与收益问题。我敢打赌,从你的问题来看,只需在C#中快速编码结构就是最好的方法。
只需2美分,税前......
答案 1 :(得分:0)
您的问题摘要: 您在现有C ++程序中有大量结构,您序列化到磁盘。您希望将结构移植到C#,以便可以将数据从磁盘反序列化到C#程序中。你不只是想做一次。您希望在两个程序都发展的同时保持两组结构同步。
您需要的是Interface Definition Language (IDL),您可以在其中以与语言无关的方式描述数据。类似于Apache Thrift,Google Protocol Buffers或MessagePack。
您必须采取的步骤是:
缺点是:
我认为优势超越了这一点: