`
ruilin215
  • 浏览: 1142913 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

在Silverlight中使用WebClient 下载资源时存在缓存问题的解决方案

阅读更多

问题:

在Silverlight中使用WebClient 下载资源时,存在缓存问题。当资源更新的时候,下载后的内容未更新。

解决方案一:

既然资源的下载依赖于URL,可以动态改变URL,来获取最新的资源。

public void LoadStringResource(string relativeFileName)
{
WebClient xmlClient = new WebClient();
xmlClient.Encoding = System.Text.Encoding.Unicode;
xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded);
relativeFileName = relativeFileName +"?eking=" + random.Next().ToString();
xmlClient.DownloadStringAsync(new Uri(relativeFileName));
}

void XMLFileLoaded(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
fileData = e.Result;

SampleDrawings = new DrawingStorage(fileData);
drawingXml = SampleDrawings.Storage;
if (drawingXml != null)
{
LoadDrawing(drawingXml, isRunMode);
}
}
}

EKING/王毅,2009, TPRI 版本所有。

解决方案二:

将下面的代码加到 silverlight 库中或直接加在应用程序中。

public static class WebClientExtensions
{
public static void DownloadStringAsync(this WebClient client, Uri uri, object user_token, bool fresh_copy)
{
if (!fresh_copy)
{
client.DownloadStringAsync(uri, user_token);
}
else
{
client.DownloadStringAsync(new Uri(uri.AbsoluteUri + "?" + Guid.NewGuid().ToString()), user_token);
}
}
}
}

分享到:
评论

相关推荐

    silverlight 使用webclient 实现上传和下载数据流

    在使用过程中,还可以通过设置WebClient实例的Credentials属性来处理需要身份验证的资源下载或上传。 综上所述,WebClient类为Silverlight应用程序中的网络通信提供了一个方便、高效的解决方案。通过使用WebClient...

    C# 使用WebClient类 下载网络指定资源

    在本教程中,我们将深入探讨如何使用WebClient类来实现一个功能完善的网络资源下载器,包括实时显示下载速度和进度,并在下载完成后提供提示。 首先,让我们了解WebClient类的基本用法。WebClient是System.Net命名...

    C#中使用WebClient下载指定url的网络照片示例源码.zip

    在C#编程中,WebClient类是.NET Framework提供的一种便捷方式,用于与Web资源进行交互,包括上传和下载数据。本示例将详细介绍如何利用WebClient类从指定URL下载网络照片,并结合VS2013环境进行源码解析。 首先,...

    htmlunit webclient下载资源

    在给定的场景中,你似乎使用WebClient来尝试下载资源,并设定了一次下载限制为1000次,可能是为了测试或模拟用户行为。 首先,我们来深入了解一下HTMLUnit。HTMLUnit基于Jakarta HttpClient和Rhino JavaScript引擎...

    C#中WebClient实现文件下载

    在C#编程中,WebClient类提供了一种简单的方式来实现文件下载。WebClient是一个高度封装的网络通信类,主要用于HTTP协议交互,包括上传和下载数据。以下是对标题和描述中涉及知识点的详细解释: 1. **WebClient下载...

    WebClient下载文件展示进度条

    下面是一个完整的示例,展示了如何在WinForms应用程序中创建一个简单的进度条,并使用WebClient下载文件: ```csharp public partial class MainForm : Form { private WebClient webClient; private long ...

    使用WebClient实现文件下载

    在.NET框架中,C#提供了一种简单的方式来下载文件,这就是使用`WebClient`类。`WebClient`是System.Net命名空间的一部分,它提供了一系列方法和属性,方便开发者执行HTTP请求,包括文件的上传和下载。在这个场景中,...

    使用webclient下载图片实例

    ### 使用WebClient下载图片实例详解 #### 一、概述 在现代互联网应用中,图片的下载与处理是一项非常常见的需求。无论是开发网站还是移动应用程序,掌握如何高效地从服务器下载图片是必不可少的一项技能。本文将...

    WebClient访问间歇性返回403解决方案.docx

    在本解决方案中,我们将讨论 WebClient 访问间歇性返回 403 的问题及其解决方法。首先,让我们来分析错误信息。WebClient 是一个常用的网络访问类,它可以模拟浏览器的行为来访问网页。然而,在某些情况下,...

    Silverlight 3 之通信webclient,webrequest,WCF实例源码

    在Silverlight中,当需要更多灵活性时,通常会使用WebRequest。通过WebRequest的BeginGetResponse和EndGetResponse方法实现异步通信,以避免阻塞UI线程。 3. **WCF**: Windows Communication Foundation是微软的...

    C#使用WebClient获取网页源文件例子

    在这个“C#使用WebClient获取网页源文件例子”中,我们将深入探讨如何利用`WebClient`来下载网页源代码,并进行UTF8编码的解码处理。 首先,`WebClient`类是`System.Net`命名空间的一部分,它提供了一个简洁的接口...

    WebClient上传下载源码

    例1:使用WebClient中的UploadFile方法上传文件。代码如下。使用此方法需要将上传的文件夹权限设置为 IIS来宾账户允许读写。 例2:使用WebClient的UpLoadData上传文件 例3:使用WebClient的Write方法上传。 例4:...

    webClient获取下载文件名示例(不在地址中获取)

    "webClient获取下载文件名示例(不在地址中获取)"这个主题关注的是如何在不依赖URL来获取下载文件的真实名称,而是通过其他方式来实现。这是因为URL中的文件名可能并不是服务器实际发送的文件名,或者为了安全和...

    C# 中WebClient 类下载文件

    本程序就主要是通过C# 中的WebClient 类实现对文件的下载功能,其中涉及到进度条,对下载成功与下载失败都会给出相应的提示,本程序是通过VS 2005 开发的,希望给需要在项目中用到下载这个功能的人有所帮助!...

    C#通过webclient下载demo

    - 异步版本:`DownloadFileTaskAsync(Uri address, String fileName)`,这个方法返回一个`Task`对象,可以在异步编程中使用。 2. **显示下载进度**: - 要显示下载进度,我们需要订阅`WebClient`的`...

    WebClient下载文件

    在WinForms应用程序中,`WebClient`常被用来实现文件的下载功能。下面将详细介绍如何使用`WebClient`进行文件下载以及相关的知识点。 首先,`WebClient`类位于`System.Net`命名空间下,它提供了方便的方法来处理...

    WebClient 的Post实现

    以下是在Silverlight中使用WebClient的示例: ```csharp using System.Windows.Browser; using System.Net; using System.Windows; public partial class App : Application { private void Application_Startup...

    用Visual Csharp实现文件下载.rar_c# webclient_csharp 下载_下载_文件下载_文件传输

    在这个例子中,我们创建了一个`WebClient`实例,并设置了两个事件处理器:`DownloadFileCompleted`用于处理下载完成时的情况,`DownloadProgressChanged`则用来跟踪下载进度。`DownloadFileAsync`方法异步开始下载...

    WebClient上传下载文件

    在C#编程环境中,`WebClient`类为我们提供了一种简单易用的方式来实现文件的上传和下载。这个类是.NET框架的一部分,它封装了HTTP协议的基本操作,使得开发者可以方便地处理HTTP请求。本篇文章将深入探讨如何使用`...

    C#WebClient下载器

    在下载文件时,`WebClient`类提供了一个`DownloadFile`方法,可以用来从指定URL下载文件到本地。在本项目中,开发者可能扩展了`WebClient`类,添加了自定义的功能,如进度跟踪和速度计算。 下载速度的计算通常涉及...

Global site tag (gtag.js) - Google Analytics