실버라이트에서도 WebClient 이용해서 쉽게 OpenAPI의 XML 데이터 따위를 읽어올 수 있습니다. (실버라이트에서는 비동기만 지원)
그런데 가끔 UTF-8 등으로 인코딩된 XML 파일을 읽을 때 Result의 Unicode 문자들이 깨져 있는 것을 경험하실 겁니다.
이때의 해결방법은 간단합니다.
WebClient에는 Encoding이란 프로퍼티가 있기 때문입니다.
또는 클래식한 표현으로는 아래와 같이...
해주시면 준비완료!
Tag : encoding, Silverlight, UTF-8, WebClient, 글자깨짐, 실버라이트
이벤트 핸들러는 다음과 같이 사용합니다. (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 형식이면 이 메서드를 씁니다.
이벤트 핸들러는 다음과 같이 사용합니다. (e.Result는 String)
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
XmlReader xr = XmlReader.Create(new StringReader(e.Result));
//...
}
네임스페이스
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
부분을 참고 하시기 바랍니다.
Tag : Downloader, Silverlight2, WebClient, 마이그레이션, 실버라이트2