데이터를 주고 받을때. 특히 네트워크 상에서는 XML을 많이 사용하죠..

받아온 XML을 입맛에 맛게 사용하기 위해서는
(입맛에 맛게라기 보단 먹을수 있게......쪽이 더 맞으려나..)

XML을 역직렬화 하는 과정이 필요합니다.

그럴때 XML을 클래스에 맵핑(? 이라고 해야 하나요? 다른말을 써야하나? ㅋ)하기 위해
클래스를

[XmlRoot(ElementName = "WVP")]
    public class MainTopicListModel
    {
        [XmlElement(ElementName = "TopicList")]
        public TopicListModel Topic { get; set; }

뭐 이런식으로 XmlAttribute 를 써서 클래스를 만드는데...
사실 헷깔리지 않게 잘만 만들면
간단하게 알아서 잘 역직렬화가 되는데

혹시라도

가끔..

이상하게 데이터가 잘 넘어오는데
이상하게
특정변수만 값이 계속 안넘어 온다면

Name을 잘 보는것도 괜찮습니다...

혹시나.. 뒤쪽에 공백이 없는지를 확인을... ㅠㅠ


뭐 이런실수. 아무도 안하겠지만
뒤쪽에 공백 하나 때문에
계속 값이 한개만 안넘어와서

혼자 2시간을 끙끙 거렸는데..
알고보니 공백....
 << 이놈의 공백.. ㅠㅠ

by 피요히코~ 2010. 9. 28. 20:41

다른게 있을지 모르지만. 찾은게 이거라서.. (--)

실버라이트에서 특정 시간에(특정 시간이 흘렀을때) 뭔가 해줘야 할때 쓰면 좋습니다. 흐흐

몰라서 그렇지 알고 나면 아주 간단합니다.

DispatcherTimer 형식의 인스턴스를 만들어 주고
시간간격을 Interval 로 정해주고
Tick 이벤트 만들어줘서 실제로 수행할 일을 정해주고
Start(혹은 Stop) 해주면 끝입니다.


예를 들어보자면

DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(3) };

이런놈을 멤버변수 정도로 만들어주고(시간간격은 3초가 됩니다)

특정부분에서(로드시라든지 뭐..)

timer.Tick += new EventHandler(timer_Tick);

이렇게 이벤트 만들어주고

void timer_Tick(object sender, EventArgs e)
{
//안에 수행할 일들 넣어주고
}

이 타이머(?) 를 시작시킬 위치에서

timer.Start() ;

해주면 끗!!!

간단하네요~
by 피요히코~ 2010. 9. 28. 20:34

간만에 하고 있는 실버라이트....
자주 써야 할꺼 같은걸 하나 정리합니다~

뭐 다른데서도 마찬가지지만
실버라이트에서도 프로그램 실행시 사용되는 이미지등을 리소스로 따로 모아두고 사용합니다.
이 리소스는 빌드액션(Build Action)방식에 따라 패키지되는 방식을 정할수 있는데

빌드액션은 다름 세가지로 분류됩니다.

1. None(없음) - 없으니까 리소스를 포함하지 않는거죠
2. Content(내용) - 리소스를 프로젝트 패키지파일(*.xap)파일에 포함합니다.
3. Resource(리소스) - 리소스를 프로젝트의 어셈블리파일(*.dll)에 포합합니다.


간단해 보이는 내용인데 왜 이걸 정리하느냐??
빌드액션에 따라서 리소스 참조 URI가 달라지기 때문이죠...(아.. 헷깔린다... ㅠ-ㅠ)

URI는 경로를 나타내므로 (당연히)상대경로와 절대경로가 있습니다.
그리고 참조해야 하는 리소스는
해당 프로그램의 패키지파일을 기준으로 패키지보다 상위에 있을수도 있고
패키지와 같은레벨에 있을수도
패키지 하위에 있을수도
패키지 하위의 어셈블리에 있을수도 있죠

1. 패키지보다 상위레벨에 존재하는 리소스의 경우에는 상대경로는 사용할 수 없습니다.  닥치고 절대경로...
   (ex : http://bravochoi.tistory.com/images/sample.jpg ) ( 없는 경로니 눌르는일 없도록... ㄷㄷㄷ)
2. 패키지와 같거나 하위레벨에 존재하는 리소스의 경우에는 상대/절대 경로 모두 사용 가능합니다. 
   (ex : http://bravochoi.tistory.com/resources/images/sample.jpg  절대경로)
   (ex : /resources/images/sample.jpg  상대경로)
   (ex : resources/images/sample.jpg   상대경로2)
3. 어셈블리에 들어있는 경우에는 /어셈블리명;component/경로 와 같은 형식으로 사용가능합니다.
   (ex : 패키지에 있는 resources.dll이라는 어셈블리에 sample.jpg가 있는 경우
           /resources;compenet/sample.jpg  요렇게)
4. 빌드애션을 Content로 해서 리소스가 패키지에 포함된 경우에는 상대경로로 접근해야 하며 시작은 / 로 해야됩니다
   (ex : /sample.jpg)
5. 빌드액션을 Resource로 해서 리소스가 프로젝트의 어셈블리에 포함되어 있을때는 상대경로로 접근해야 하며 / 를 붙이면 안됩니다.
   (ex : sample.jpg)
   (ex : images/sample.jpg)

3번과 5번의 차이는
5번은 프로젝트에 추가한 리스소용 파일을 빌드액션을  resource로 했을때 접근하는 방법이고
3번은 다른 어셈블리(참조추가된)에 있는 리소스에 접근할때 입니다.




 

by 피요히코~ 2010. 8. 25. 02:38
| 1 2 3 4 5 6 7 ··· 38 |