Currently we are using Real-Time SDK's C# version. Our program uses an EmaConfig.xml file as demonstrated in some sample programs. I am aware of this section in the file:
<DictionaryList>
<Dictionary>
<Name value="Dictionary_1"/>
<!-- dictionaryType is optional: defaulted to ChannelDictionary" -->
<!-- possible values: ChannelDictionary, FileDictionary -->
<!-- if dictionaryType is set to ChannelDictionary, file names are ignored -->
<DictionaryType value="DictionaryType::ChannelDictionary"/>
</Dictionary>
<Dictionary>
<Name value="Dictionary_2"/>
<DictionaryType value="DictionaryType::FileDictionary"/>
<!-- dictionary names are optional: defaulted to RDMFieldDictionary and enumtype.def -->
<RdmFieldDictionaryFileName value="./Configs/Refinitiv/RDMFieldDictionary"/>
<EnumTypeDefFileName value="./Configs/Refinitiv/enumtype.def"/>
</Dictionary>
</DictionaryList>
Currently the consumers defined in EmaConfig.xml file all use Dictionary_2
, i.e., a DictionaryType::FileDictionary
. It causes a minor inconvenience to use, as you see we need to specify RdmFieldDictionaryFileName
and EnumTypeDefFileName
, which are paths relative to current working directory. It means if we start the program using absolute path, i.e., current working directory is not set, the program won't work.
We want to solve this issue. Could you let me know whether switching to Dictionary_1
, that is. the "ChannelDictionary", can solve this issue. It sounds to me that "FileDictionary" means we use the local version and "ChannelDictionary" means each time we fetch the dictionary from server. Is this understanding correct?