/// <summary>
        /// Reads <see cref="IPqlClientSecurityContext"/> from a semicolon-separated string.
        /// </summary>
        public static IPqlClientSecurityContext GetObject(string data)
        {
            if (string.IsNullOrEmpty(data))
            {
                throw new ArgumentNullException("data");
            }

            var parts = data.Split(new [] {';'}, StringSplitOptions.None);
            if (parts.Length != 4)
            {
                throw new ArgumentException("Data must have exactly 4 semicolon-separated values", "data");
            }

            var result = new PqlClientSecurityContext(parts[0], parts[1], parts[2], parts[3]);
            return result;
        }
        /// <summary>
        /// Reads <see cref="IPqlClientSecurityContext"/> from a semicolon-separated string.
        /// </summary>
        public static IPqlClientSecurityContext GetObject(string data)
        {
            if (string.IsNullOrEmpty(data))
            {
                throw new ArgumentNullException("data");
            }

            var parts = data.Split(new [] { ';' }, StringSplitOptions.None);

            if (parts.Length != 4)
            {
                throw new ArgumentException("Data must have exactly 4 semicolon-separated values", "data");
            }

            var result = new PqlClientSecurityContext(parts[0], parts[1], parts[2], parts[3]);

            return(result);
        }