检查Silverlight中的互联网连接

我正在编写一个Silverlight 4应用程序,并且想要检查何时打开已安装的浏览器应用程序,是否存在有效的Internet连接(然后从我的网站下载一些数据)。 做这个的最好方式是什么? 我意识到我可以尝试一下WebRequest,但这对我来说似乎有些笨拙。

编辑 :我的意思是有效的互联网连接只是连接到互联网

您可以使用Application.CheckAndDownloadUpdateAsync一举两得。 当您在处理Application.CheckAndDownloadUpdateCompleted时在UpdateAvailable上获得False时,这将意味着两件事之一 – 您的站点无法访问或没有可用的更新。 在任何一种情况下,您都会知道您需要知道什么。

什么是有效的互联网连接? 如果您想检查是否有从网站下载数据的function,请检查您是否可以从您的网站下载。 将try / catch块放在可能由于程序无法控制的原因而失败的事情上没有什么非常hacky。 这正是我要做的。

客户端“连接到Internet”并不一定意味着您的站点可用于提供所需的数据。 这是唯一有效的测试方法。

有一个名为NetworkInterface的类允许这样做。

  if (!NetworkInterface.GetIsNetworkAvailable()) { // no network connection } 

现在无法保证始终确定是否存在互联网连接,具体取决于代理设置和其他变量。

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.aspx