我正在开展一个项目,其中两个进程通过基于TCP的消息总线进行通信。为了提高效率,我考虑在每条消息前加上消息的字节长度。
但是有些消息会传达有关COM对象的信息;即,进程A调用CoMarshalInterface()并将结果字节提交给进程B以进行反序列化。
为了确定我的消息的字节长度而没有实际序列化它们,我试图弄清楚是否有任何方法可以知道CoMarshalInterface()将具体或至少最大字节大小yield,实际上还没有调用那个方法(至少在代码中没有这个)。
有人知道有没有办法? 我没有注意到我测试过的对象的数据长度有任何大的变化,但我不太确定CoMarshalInterface如何在内部工作。它是依赖于每个COM对象单独实现的某种机制,因此是完全未知的大小,还是可以安全地假设它永远不会生成超过XYZ字节的序列化信息?
谢谢!