CTP: NET封装后接口中序列化数据的问题

如果你用的是经过封装成CTP.dll的C#接口,需要对Order, Trade, depthMarketData,inputOrder,orderAction,inputOrderAction等数据进行本地序列化到硬盘,在C++的CTP文件中,往往没有对这些结构文件打可序列化的标识,那么,你在C#中,就没办法直接进行序列化。
那么你要么有二种方法:
1、选择C#重新封装一个类,格式和你需要内容完全一样,相当于COPY,但相当麻烦,不建议。
2、到生成CTP.dll的C++文件中,找到这些结构文件,然后在这些内容上加上[ Serializable ]。这样,然后,重新编译成新的CTP.dll, 让C#项目引用。
这里举几个例子:
C++文件中(我这里是Struct.h):

    [ Serializable ]
    public ref struct ThostFtdcOrderActionField
    [ Serializable ]
    public ref struct ThostFtdcTradeField
    [ Serializable ]
   public ref struct ThostFtdcDepthMarketDataField

需要说明的是,C++的重新编译时间可能略长,不要误认没有编译成功,等一下即可。

你可能感兴趣的:(CTP,CTP,序列化)