public void Test1()
        {
            /*tInt = new SharpTorrent.BitTorrentProtocol.BeEncode.String();
            tInt.Set(-13);
            Console.WriteLine(tInt.ToString());
            tInt = new SharpTorrent.BitTorrentProtocol.BeEncode.String("-13");
            Console.WriteLine(tInt.ToString());
            tInt = new SharpTorrent.BitTorrentProtocol.BeEncode.String("Hola pueblo");
            Console.WriteLine(tInt.ToString());*/
            Dictionary dic = new Dictionary();
            List lista = new List(3);
            lista.Add(new SharpTorrent.BitTorrentProtocol.BeEncode.String("Preciosa"));
            lista.Add(new SharpTorrent.BitTorrentProtocol.BeEncode.String("amable"));
            lista.Add(new Integer(10));
            dic.Add("miriam", lista);
            byte[] bee = dic.BeEncode();

            Console.ReadLine();
        }
        private BeEncode.Dictionary ParseDictionary(byte [] buffer)
        {
            Dictionary pDictionary = new Dictionary();
            string dictionaryKey;
            BeType dictionaryElement;
            int infoBegining = 0;

            if ((buffer[actualTokenPos] != (char)'d') || (buffer[actualTokenPos + 1] == (char)'e'))
                throw new BePaserException("There is not a valid Dictionary at position " + actualTokenPos.ToString());
            // Remove the 'd'
            actualTokenPos++;
            while (buffer[actualTokenPos] != (char)'e') {
                // First the dictionary key
                dictionaryKey = ParseString(buffer).StringValue;
                // The info Key has an special treat
                if (dictionaryKey.CompareTo("info") == 0) {
                   infoBegining = actualTokenPos;
                }
                // Now the dictionary element
                switch (buffer[actualTokenPos]) {
                    case (byte)'d': dictionaryElement = ParseDictionary(buffer);
                        break;
                    case (byte)'l': dictionaryElement = ParseList(buffer);
                        break;
                    case (byte)'i': dictionaryElement = ParseInteger(buffer);
                        break;
                    default: dictionaryElement = ParseString(buffer);
                        break;
                }
                // We have the KEY and the ELEMENT
                pDictionary.Add(dictionaryKey, dictionaryElement);
                if (dictionaryKey.CompareTo("info") == 0) {
                    int end = actualTokenPos;
                    byte[] temp = new byte[end - infoBegining];
                    for (int i = 0; i < end - infoBegining; i++)
                        temp[i] = buffer[infoBegining + i];
                    pDictionary.Add("infoToHash", temp);
                }
            }
            // Remove the 'e'
            actualTokenPos++;
            return pDictionary;
        }