/// <summary> /// Starts retrieving the <paramref name="moduleInfo"/> and calls the <paramref name="callback"/> when it is done. /// </summary> /// <param name="moduleInfo">Module that should have it's type loaded.</param> /// <param name="callback">Delegate to be called when typeloading process completes or fails.</param> public void BeginLoadModuleType(ModuleInfo moduleInfo, ModuleTypeLoadedCallback callback) { Uri uriRef = new Uri(moduleInfo.Ref, UriKind.RelativeOrAbsolute); lock (this.typeLoadingCallbacks) { ModuleTypeLoaderCallbackMetadata callbackMetadata = new ModuleTypeLoaderCallbackMetadata() { Callback = callback, ModuleInfo = moduleInfo }; List <ModuleTypeLoaderCallbackMetadata> callbacks; if (this.typeLoadingCallbacks.TryGetValue(uriRef, out callbacks)) { callbacks.Add(callbackMetadata); return; } this.typeLoadingCallbacks[uriRef] = new List <ModuleTypeLoaderCallbackMetadata> { callbackMetadata }; } IFileDownloader downloader = this.CreateDownloader(); downloader.DownloadCompleted += this.OnDownloadCompleted; downloader.DownloadAsync(uriRef, uriRef); }
/// <summary> /// Starts retrieving the <paramref name="moduleInfo"/> and calls the <paramref name="callback"/> when it is done. /// </summary> /// <param name="moduleInfo">Module that should have it's type loaded.</param> /// <param name="callback">Delegate to be called when typeloading process completes or fails.</param> public void BeginLoadModuleType(ModuleInfo moduleInfo, ModuleTypeLoadedCallback callback) { Uri uriRef = new Uri(moduleInfo.Ref, UriKind.RelativeOrAbsolute); lock (this.typeLoadingCallbacks) { ModuleTypeLoaderCallbackMetadata callbackMetadata = new ModuleTypeLoaderCallbackMetadata() { Callback = callback, ModuleInfo = moduleInfo }; List<ModuleTypeLoaderCallbackMetadata> callbacks; if (this.typeLoadingCallbacks.TryGetValue(uriRef, out callbacks)) { callbacks.Add(callbackMetadata); return; } this.typeLoadingCallbacks[uriRef] = new List<ModuleTypeLoaderCallbackMetadata> { callbackMetadata }; } IFileDownloader downloader = this.CreateDownloader(); downloader.DownloadCompleted += this.OnDownloadCompleted; downloader.DownloadAsync(uriRef, uriRef); }
/// <summary> /// Starts retrieving the <paramref name="moduleInfo"/> and calls the <paramref name="callback"/> when it is done. /// </summary> /// <param name="moduleInfo">Module that should have it's type loaded.</param> /// <param name="callback">Delegate to be called when typeloading process completes or fails.</param> public void BeginLoadModuleType(ModuleInfo moduleInfo, ModuleTypeLoadedCallback callback) { Uri uriRef = new Uri(moduleInfo.Ref, UriKind.RelativeOrAbsolute); lock (this.typeLoadingCallbacks) { ModuleTypeLoaderCallbackMetadata callbackMetadata = new ModuleTypeLoaderCallbackMetadata { Callback = callback, ModuleInfo = moduleInfo }; List<ModuleTypeLoaderCallbackMetadata> callbacks; if (this.typeLoadingCallbacks.TryGetValue(uriRef, out callbacks)) { callbacks.Add(callbackMetadata); return; } this.typeLoadingCallbacks[uriRef] = new List<ModuleTypeLoaderCallbackMetadata> { callbackMetadata }; } IFileDownloader downloader = this.CreateDownloader(); downloader.DownloadCompleted += this.OnDownloadCompleted; try { downloader.DownloadAsync(uriRef, uriRef); } catch (Exception ex) { throw new Exception(string.Format("Module download from failed : {0}", uriRef), ex); } }