/// <summary>
 /// 安装结果事件派发
 /// </summary>
 //public event EventHandler<PluginResult> DispatchPluginResult;
 public XFileDownloader(String url, String localFilePath, string appWorkSpace,
         XFileTransferRecorder recorder, XFileTransferManager manager)
 {
     Url = url;
     LocalFilePath = localFilePath;
     AppWorkSpace = appWorkSpace;
     FileTransferRecorder = recorder;
     FileTransferManager = manager;
     State = INIT;
     myRequestState = new RequestState();
 }
        /// <summary>
        /// 获取XIFileTransfer对象,如果Dictionary<String, XIFileTransfer>中有就直接获取,没有就创建
        /// </summary>
        /// <param name="fileTransfers">存储XIFileTransfer对象的Dictionary</param>
        /// <param name="source">下载时表示服务器地址,上传时表示要上传的文件地址</param>
        /// <param name="target">下载时表示存储下载文件的本地地址,上传时表示要上传的服务器地址</param>
        /// <param name="appWorkSpace">app的WorkSpace</param>
        /// <param name="type">传输的类型(上传或下载两种)</param>
        /// <returns></returns>
        private XIFileTransfer GetFileTransfer(Dictionary<String, XIFileTransfer> fileTransfers, String source, String target, String appworkSpace, String type)
        {
            XFileTransferRecorder fileTransferRecorder = null;
            FileTransferRecorders.TryGetValue(appworkSpace, out fileTransferRecorder);
            if (fileTransferRecorder == null)
            {
                fileTransferRecorder = new XFileTransferRecorder(appworkSpace);
                FileTransferRecorders.Add(appworkSpace, fileTransferRecorder);
            }

            XIFileTransfer fileTransfer = null;
            fileTransfers.TryGetValue(source, out fileTransfer);
            if (fileTransfer == null)
            {
                if (type.Equals(COMMAND_DOWNLOAD))
                {
                    fileTransfer = new XFileDownloader(source, target, appworkSpace, fileTransferRecorder, this);
                }
                fileTransfers.Add(source, fileTransfer);
            }
            return fileTransfer;
        }