Quickfix/n,提取消息类型的最有效方法?

Mat*_*olf 6 c# quickfix fix-protocol

Quickfix/n 1.4 中提取此处定义的消息类型的最有效方法是什么:http : //www.fixprotocol.org/FIXimate3.0/en/FIX.5.0SP2/messages_sorted_by_type.html

我目前使用var msgType = Message.GetMsgType(message.ToString());结果为“A”的登录消息。有没有更好的办法?我尝试确定其中的消息类型ToAdmin(...)以捕获传出的登录请求消息,以便我可以添加用户名和密码。

我很想通过 MessageCracker 来做到这一点,但到目前为止,我还没有找到一种方法来实现捕获所有剩余消息类型,以防我没有实现所有 OnMessage 重载。(请参阅相关问题:Quickfix,是否有“全能”方法 OnMessage 来处理未由重载方法处理的传入消息?)。

谢谢

Gra*_*ier 5

不是你的标题问题,而是其中的一个关键部分:

我尝试确定 ToAdmin(...) 中的消息类型,以便捕获传出的登录请求消息,以便我可以添加用户名和密码。

下面是一段代码,它几乎钉住了它(摘自这篇文章到 QF/n 邮件列表):

    public void ToAdmin(Message message, SessionID sessionID)
    {
        // Check message type
        if (message.Header.GetField(Tags.MsgType) == MsgType.LOGON)
        {
            // Yes it is logon message
            // Check if local variables YourUserName and YourPassword are set
            if (!string.IsNullOrEmpty(YourUserName) && !string.IsNullOrEmpty(YourPassword))
            {
                // Add Username and Password fields to logon message
                ((Logon) message).Set(new Username(YourUserName));
                ((Logon) message).Set(new Password(YourPassword));
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)