public static void DownloadAssemblyAsync(string assemblyName, Action <Assembly> callback) { var handlers = new EventHandler <DownloadCommpletedEventArgs> [1]; handlers[0] = (s, arg) => { Downloader.DownloadCommpleted -= handlers[0]; if (callback != null) { callback(arg.Result); } }; Downloader.DownloadCommpleted += handlers[0]; Downloader.DownloadAsync(assemblyName); }
private static void BeginLoadCore(AsyncCallback userCallback, AssemblyNavigationContentLoaderAsyncResult result) { if (_downloader == null) { _downloader = new AssemblyDownloader(); } var handlers = new EventHandler <DownloadCommpletedEventArgs> [1]; handlers[0] = (sender, e) => { _downloader.DownloadCommpleted -= handlers[0]; result.Assembly = e.Result; userCallback(result); }; _downloader.DownloadCommpleted += handlers[0]; _downloader.DownloadAsync(result.AssemblyName); }