/// <summary> /// Wandelt eine StringDictionary in eine Liste mit 'KEY_VALUE'-Knoten um. /// </summary> /// <param name="pStringDictionary"></param> /// <returns></returns> public List <object> ToNodeFromStringDictionary(Dictionary <string, string> pStringDictionary) { var keyValueList = new List <object>(); foreach (var keyValue in pStringDictionary) { GenericProtocol copyRef = CopyRef("KEY_VALUE"); if (copyRef == null) { continue; } copyRef.Add("KEY", keyValue.Key); copyRef.Add("VALUE", keyValue.Value); keyValueList.Add(copyRef); } return(keyValueList); }
private object Read(IStreamInput pDataInput, int pIndex, GenericProtocol pNode) { if (pNode == null) { pNode = CopyRef(pIndex); } // -------------------------- List <int> nodeIndices = pNode.NodeIndices[pIndex]; for (int i = 0; i < nodeIndices.Count; i++) { int localNodeIndex = nodeIndices[i]; string localNodeName; switch (localNodeIndex) { case 0: return(pDataInput.ReadByte()); // Byte case 1: return(pDataInput.ReadBoolean()); // Bool(ean) case 2: return(pDataInput.ReadByte()); // Byte case 3: return(pDataInput.ReadShort()); // Short case 4: return(pDataInput.ReadInt()); // Int case 5: return(pDataInput.ReadLong()); // Long case 6: return(pDataInput.ReadFloat()); // Float case 7: return(pDataInput.ReadDouble()); // Double case 8: return(pDataInput.ReadChar()); // Char case 9: return(pDataInput.ReadUTF().Replace('\u20AD', 'K')); // String case 10: break; case 11: i++; localNodeIndex = nodeIndices[i]; localNodeName = NodeNames[localNodeIndex]; var arrList = new List <object>(); pNode.Add(localNodeName, arrList); while (pDataInput.ReadByte() == 11) { arrList.Add(Read(pDataInput, localNodeIndex, null)); } i++; break; case 12: // Ende der Liste break; case 13: // new | seit ungefähr dem applet 90aeh return(ReadChars(pDataInput)); //break; default: localNodeName = NodeNames[localNodeIndex]; pNode.Add(localNodeName, Read(pDataInput, localNodeIndex, null)); break; } } // -------------------------- return(pNode); }