/// <summary>
        /// EndListPersistentRequestsEventArgs Constructor
        /// </summary>
        /// <param name="parsed">a simple MessageParse</param>
        internal EndListPersistentRequestsEventArgs(MessageParser parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

#if DEBUG
            parsed.PrintAccessCount();
#endif
        }
        /// <summary>
        /// PersistentPutDirEventArgs Constructor
        /// </summary>
        /// <param name="parsed">a simple MessageParse</param>
        internal PersistentPutDirEventArgs(MessageParser parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

#if DEBUG
            parsed.PrintAccessCount();
#endif
        }
        internal SendingToNetworkEventArgs(MessageParser parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

#if DEBUG
            parsed.PrintAccessCount();
#endif
        }
        /// <summary>
        /// CloseConnectionDuplicateClientNameEventArgs Constructor
        /// </summary>
        /// <param name="parsed">a simple MessageParse</param>
        internal CloseConnectionDuplicateClientNameEventArgs(MessageParser parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

#if DEBUG
            parsed.PrintAccessCount();
#endif
        }
        /// <summary>
        /// ConfigDataEventArgs Constructor
        /// </summary>
        /// <param name="parsed">a simple MessageParse</param>
        internal ConfigDataEventArgs(MessageParser parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

            Config = parsed;

            /* Too much to parse by hand -
             * we would duplicate most of the nodes 
             * datastructures for configuration 
             * Therfore we expose the MessageParser directly...
             * 
             * C# 4.0 - dynamic type could be the solution!
             * * * * * */

#if DEBUG
            parsed.PrintAccessCount();
#endif

        }
        /// <summary>
        /// FCPPluginReplyEventArgs Constructor
        /// </summary>
        /// <param name="parsed">a simple MessageParse</param>
        internal FCPPluginReplyEventArgs(dynamic parsed)
        {
#if DEBUG
            FCP2Protocol.ArgsDebug(this, parsed);
#endif

            PluginName = parsed.PluginName;
            
            DataLength = parsed.DataLength;
            if (parsed.DataLength.LastConversationSucessfull)
            {
                Data = null; /* TODO: Similar to AllData*/
                throw new NotImplementedException("Unclear format");

                /* TODO: Data? EndMessage? */
            }
            Identifier = parsed.Identifier;

            Replies = parsed;

#if DEBUG
            parsed.PrintAccessCount();
#endif
        }
        public MessageParserSubElement(MessageParser messageParser, string element)
        {
            _parentParser = messageParser;
            _name = element;

        }
 public MessageParserSubElement(MessageParser messageParser, string element)
 {
     _parentParser = messageParser;
     _name         = element;
 }