Downloader 대신 WebClient


Silverlight2 에서 Downloader가 사라졌습니다.
대신에 WebClient를 사용하시면 됩니다.

파일 전송을 위한 메서드로
OpenReadAsync과 DownloadStringAsync 두가지를 지원합니다.

OpenReadAsync

WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri("song.wma", UriKind.Relative));

이벤트 핸들러는 다음과 같이 사용합니다. (e.Result는 Stream)

void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    MediaElement media = new MediaElement();
    media.SetSource(e.Result);

    LayoutRoot.Children.Add(media);
    media.Play();
}


DownloadStringAsync

특히 받아올 파일이 xml파일 등 Text 형식이면 이 메서드를 씁니다.

WebClient wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri("data.xml", UriKind.Relative));


이벤트 핸들러는 다음과 같이 사용합니다. (e.Result는 String)

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    XmlReader xr = XmlReader.Create(new StringReader(e.Result));

    //...
}

네임스페이스

using System.Net;

zip파일로 Packaging 해 놓고 Part를 뽑아 쓸 경우는 Microsoft Silverlight 2 SDK Help의

Microsoft Silverlight 2 SDK
 - Silverlight 2 Beta 1 - Development with the .NET Framework
    - Core Presentation Framework / UI 
       - Fundamentals
          - Downloading Content on Demand

부분을 참고 하시기 바랍니다.
 

'Silverlight > Migration from 1.1' 카테고리의 다른 글

웹서비스 호출  (0) 2008.03.25
Navigate 메서드  (0) 2008.03.25
Downloader 대신 WebClient  (1) 2008.03.08
HtmlTimer 대신 뭘 쓰면 될까요?  (2) 2008.03.06
Image.Source는 어떻게 쓰나  (0) 2008.03.06
BrowserHost야 어딜 간거니???  (4) 2008.03.06

설정

트랙백

댓글

  • BlogIcon 길버트 2008.03.21 17:24 신고 ADDR 수정/삭제 답글

    제가 중간에 잘못 적은 내용이 있었네요.

    media.SetSource = e.Result 를
    media.SetSource(e.Result) 로 수정하였습니다.