public void Dispose() The SharePointClientDownloadData class implements the System.IDisposable interface. Follow the standard .NET dispose pattern when using the SharePointClientDownloadData class. For more information, refer to the System.IDisposable interface documentation in MSDN.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Color;using Leadtools.SharePoint.Client;public void SharePointClientDownloadStreamAsyncExample(){// Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example// http://SiteCollection/MySiteUri siteUri = new Uri(SHAREPOINT_SITE_URI);// Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example// "Documents" or "Documents\Sub Documents"string folderName = SHAREPOINT_FOLDER_NAME;// Replace SHAREPOINT_DOCUMENT_NAME with a valid document on the folder above, for example// MyDocument.tifstring documentName = SHAREPOINT_DOCUMENT_NAME;// Build the full URL to the document are we going to downloadUriBuilder builder = new UriBuilder(siteUri);builder.Path = Path.Combine(builder.Path, folderName);builder.Path = Path.Combine(builder.Path, documentName);Uri sourceDocumentUri = builder.Uri;SharePointClient spClient = new SharePointClient();// Optional: Set the credentials:spClient.Credentials = new NetworkCredential(USER_NAME, PASSWORD, DOMAIN);// If this is a console application demo, we might exit the program before the operation completes,// so use a wait handle to not exit this method till the opreation completesAutoResetEvent wait = new AutoResetEvent(false);// Download the SharePoint item to the temporary file asynchronouslyspClient.DownloadCompleted += new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadStreamAsyncCompleted);spClient.GetDownloadStreamAsync(sourceDocumentUri, wait);// Wait till the operation completeswait.WaitOne();wait.Close();}private static void MyDownloadStreamAsyncCompleted(object sender, SharePointClientDownloadCompletedEventArgs e){// Remove our handlerSharePointClient spClient = sender as SharePointClient;spClient.DownloadCompleted -= new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadStreamAsyncCompleted);if (e.Error == null && !e.Cancelled){// All is OK, use RasterCodecs to get its infousing (RasterCodecs codecs = new RasterCodecs()){using (CodecsImageInfo imageInfo = codecs.GetInformation(e.DestinationData.Stream, true)){// Show the image infoConsole.WriteLine("URL: {0}", e.SourceUri);Console.WriteLine("Pages: {0}", imageInfo.TotalPages);Console.WriteLine("Size: {0} by {1} pixels", imageInfo.Width, imageInfo.Height);Console.WriteLine("Resolution: {0} by {1} dpi", imageInfo.XResolution, imageInfo.YResolution);Console.WriteLine("Bits/Pixel: {0}", imageInfo.BitsPerPixel);}}}else{// Some error occuredif (e.Error != null)Console.WriteLine(e.Error.Message);elseConsole.WriteLine("User cancelled");}// Dispose the SharePoint streamif (e.DestinationData != null){e.DestinationData.Dispose();}// Tell whoever is listening that we are doneEventWaitHandle wait = e.UserState as EventWaitHandle;wait.Set();}