我正在尝试将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
存在于消息的字符串表示形式中。如何成功从消息中提取值?我想念什么?