Я пытаюсь добавить поле OnBehalfOfCompID к сообщению ExecutionReport для протокола Fix Pack, однако мой код выдает ошибку 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();
}
Когда япопытаться получить значение для OnBehalfOfCompID
с помощью
_executionReport.GetString(Fields.Tags.OnBehalfOfCompID);
или даже с
_executionReport.OnBehalfOfCompID.getValue();
Я получаю сообщение об ошибке:
'_executionReport.OnBehalfOfCompID' threw an exception of type 'QuickFix.FieldNotFoundException'
Во время отладки я могу четковидим, что поле 115
существует в строковом представлении сообщения.Как успешно вытащить значение из сообщения?Чего мне не хватает?