2011-07-16 83 views
0

我是Silverlight的新品牌,正在寻找一个小方向。我有一个用silverlight编写的简单图库应用程序。我希望能够在这个例子中,只需将一个xml或json文件传送到应用程序知道要查找的文件夹中的服务器上,然后让Silverlight应用程序打开文件。该文件将包含一个画廊类别,它的标题desc,图像和他们的标题,desc。我会将这些数据非系统化以显示新上传的类别。我在wpf中多次做过这类事情,但无法找到在silverlight中处理这个问题的最佳方法。感谢任何方向,请让我知道是否需要提供更多信息。我也上传图片,XML或JSON文件将包含链接到它们的信息。silverlight - 打开文件

回答

1

您必须为此使用WebClient。 这里是一个小例子:

public MainPage() 
     { 
      InitializeComponent(); 

      GetFileContent("http://localhost/test/myjson.txt", ProcessResult, error => { throw error; }); 
     } 

     private void ProcessResult(String result) 
     { 
      //Do stuff here 
     } 

     private void GetFileContent(String uri, Action<String> onData, Action<Exception> onError) 
     { 
      var wc = new WebClient(); 

      DownloadStringCompletedEventHandler handler = null; 

      handler = (s, args) => 
      { 
       wc.DownloadStringCompleted -= handler; 
       if(args.Error != null) 
       { 
        if(onError != null) 
         onError(args.Error); 
        return; 
       } 

       if(onData != null) 
        onData(args.Result); 
      }; 
      wc.DownloadStringCompleted += handler; 

wc.DownloadStringAsync(新URI(URI,UriKind.Absolute)); }

您可能会在这里看看http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx,因为您需要一个clientaccesspolicy来访问该文件。

这是你所需要的?

BR,

TJ

+0

谢谢回答,我要确保我明白的东西。即使我的应用程序,专辑xml或json文件以及图像位于同一服务器上,类似于/安装在我的帐户的根目录中,而专辑xml文件位于/ album和图像在可能/专辑/图像,我需要下载的XML文件?这是因为Silverlight应用程序在客户端运行?并需要从服务器抓取文件? – Terco

+0

是的,您需要下载它,导致sl应用程序在客户端上运行。你可以把这个文件放在你的XAP上,那么你不必再次下载它。但是,你并不是真正动态的,因为每次你改变文件时,你都必须重新编译和重新部署。 – TerenceJackson