【发布时间】:2017-03-09 06:01:34
【问题描述】:
我正在开发一个使用 QuickFIX for .NET(1.7 版)的应用程序。由于我们的交易对手数据字典中定义的大量自定义字段被我们的 FIX 应用程序拒绝,我决定简单地使用他们的数据字典。
但是,他们有一个自定义字段类型“TENOR”导致异常,所以我遵循了这个论坛的建议:QuickFIX counterparty DataDictionary gieves invalid type exception
并将 TENOR 类型替换为 STRING,如下所示:
<field number="12345" name="tenor" type="STRING"/>
原来是<field number="12345" name="tenor" type="TENOR"/>
但是当我们的应用再次尝试登录 FIX 主机时,它抛出异常:“对象引用未设置为对象的实例。”
知道如何解决这个问题吗?谢谢。
[这里有更多来自异常的堆栈跟踪:]
at QuickFix.DataDictionary.DataDictionary.parseMsgEl(XmlNode node, DDMap ddmap, Nullable`1 componentRequired)
at QuickFix.DataDictionary.DataDictionary.Load(Stream stream)
at QuickFix.SessionFactory.createDataDictionary(SessionID sessionID, Dictionary settings, String settingsKey, String beginString)
at QuickFix.SessionFactory.ProcessFixTDataDictionaries(SessionID sessionID, Dictionary settings, DataDictionaryProvider provider)
at QuickFix.SessionFactory.Create(SessionID sessionID, Dictionary settings)
at QuickFix.AbstractInitiator.CreateSession(SessionID sessionID, Dictionary dict)
at QuickFix.AbstractInitiator.Start()
【问题讨论】:
-
这里不够继续。有堆栈跟踪吗?
-
不幸的是,唯一的堆栈跟踪是这个“对象引用未设置为对象的实例。”。你们是怎么解决这个问题的?
-
格兰特,您是如何将 TENOR 替换为 STRING 的?像这样:
? -
我认为应该可以。 (我认为我没有第一手的经验,但它应该可以工作。)而且我确信有一个堆栈跟踪;该错误消息应追溯到一行或至少一个函数名称。您附近有人可以帮助您使用 VisualStudio 吗?
-
授予,我添加了堆栈跟踪 - 见上文。当应用程序调用initiator.start() 来启动会话时会发生这种情况。谢谢。