/// <summary>
        /// The WebRequestFunction used by DownloadMetaFile().
        /// </summary>
        /// <param name="arg">MetaXmlFile</param>
        /// <returns>null</returns>
        private object WebRequest_DownloadMetaFile(Object arg)
        {
            MetaXmlFile metafile = (MetaXmlFile)arg;
            Uri         uri      = new Uri(wiretapServer, metafile.Uri);

            webClient.DownloadFile(uri, metafile.LocalFile);
            return(null);
        }
        /// <summary>
        /// Download a meta xmlfile to a local cache.
        /// </summary>
        /// <param name="metafile">The MetaXmlFile to download.</param>
        public void DownloadMetaFile(MetaXmlFile metafile)
        {
            try
            {
                PerformWebRequest(WebRequest_DownloadMetaFile, metafile);
            }
            catch (Exception ex)
            {
                throw new NetworkException(String.Format(Language.Error_DownloadError, metafile.Name), ex);
            }

            metafile.FlagAsChecked();
            this.BytesDownloaded += (int)metafile.LocalFileInfo.Length;
        }