将现有字段添加到现有FIX消息

时间:2019-06-03 11:13:40

标签: c# quickfix fix-protocol

我正在尝试将OnBehalfOfCompID字段添加到修订协议的ExecutionReport消息中,但是我的代码在尝试检索此新值时抛出QuickFix.FieldNotFoundException: field not found for tag: 115错误字段。

我的DataDictionary如下:

<message name='ExecutionReport' msgcat='app' msgtype='8'>
...
 <field name='OnBehalfOfCompID' required='N' />
...
</message>

我还手动修改了FixLibV3.Messages.Fix50SP2.ExecutionReport.generated.cs以包括OnBehalfOfCompID详细信息:

/// <summary>
/// Tag 115 of type STRING->StringField. Optional.
/// </summary>
public Fields.OnBehalfOfCompID OnBehalfOfCompID
{
    get
    {
        var v = new Fields.OnBehalfOfCompID();
        GetField((StringField)v);
        return v;
    }
    set { SetField(value); }
}

/// <summary>
/// Tag 115
/// </summary>
public void Set(Fields.OnBehalfOfCompID v)
{
    OnBehalfOfCompID = v;
}

/// <summary>
/// Tag 115
/// </summary>
public Fields.OnBehalfOfCompID Get(Fields.OnBehalfOfCompID v)
{
    GetField((StringField)v);
    return v;
}

/// <summary>
/// Tag 115
/// </summary>
public bool IsSetOnBehalfOfCompID()
{
    return IsSetField(Fields.Tags.OnBehalfOfCompID);
}

/// <summary>
/// Tag 115
/// </summary>
public bool IsSet(Fields.OnBehalfOfCompID v)
{
    return IsSetOnBehalfOfCompID();
}

当我尝试使用{p>来检索OnBehalfOfCompID的值时

 _executionReport.GetString(Fields.Tags.OnBehalfOfCompID);

,甚至使用

_executionReport.OnBehalfOfCompID.getValue();

我得到了错误:

'_executionReport.OnBehalfOfCompID' threw an exception of type 'QuickFix.FieldNotFoundException'

在调试期间,我可以清楚地看到字段115存在于消息的字符串表示形式中。如何成功从消息中提取值?我想念什么?

0 个答案:

没有答案