2011-07-16 115 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