1/4. 한 프로젝트에서 웹서비스 만들기 2/4. DB연결 하기 3/4. 리스트 주고 받고 - 서버 탐색기와 린큐를 이용한 방법 4/4. 리스트 주고 받고 - 클래스를 이용한 방법 |
|
1. 테스트용 프로젝트 만들기 |
|
2.프로젝트에 웹서비스 추가하기 |
같은 프로젝트에서 웹서비스를 사용할때는 WCF라는 것을 이용합니다.
3.5까지는 'ASP.NET 웹서비스'라는 것이 있는데 4.0부터 WCF로 통합됬는지 보이지 않습니다 ㅡ.-;;;
하지만 WCF 서비스도 우리가 원하는 동작을 하니 상관은 없습니다 ㅎㅎㅎ
그러면 'WCF서비스'를 추가 해봅시다.
실버라이트를 생성하면 테스트용 웹프로젝트가 생성됩니다. 이 웹프로젝트에서 항목을 추가 시킵니다.
'WCF 서비스'를 찾아 추가 합니다.(저는 기본 이름으로 사용하겠습니다.)
Service1.svc.cs 파일을 열어 다음과 같은 코드를 추가 합니다.
public string strTest( string strGetData) { strGetData = strGetData + " 라는 데이터가 왔어요"; return "헬로~우~ 시드니"; }
[OperationContract] string strTest(string strGetData);
|
3.웹서비스 연결하기 |
실버라이트 프로젝트에서 참조에서 오른쪽 클릭을 한후 '서비스 참조 추가'를 선택합니다.
검색으로 누르면 자동으로 웹서비스가 선택됩니다. 이동을 누르면 로딩이 후 웹서비스가 표시됩니다.
만약 이동을 눌렀는데 서비스를 못찾는다면 솔루션을 빌드한후 다시 시도 하시기 바랍니다.
|
4. 웹서비스 확인하기 |
웹서비스 객체를 전역으로 선언하고 프로그램 시작점에서 다운로드 완료 이벤트를 연결 해줍니다.
실버라이트에서 웹서비스를 이용할때는 무조건 비동기로 데이터를 받아오기때문에 이벤트를 꼭 연결해 주어야 합니다 ㅎㅎㅎ
(WCF서비스라 그러는 건지는 모르겠군요.)
//웹서비스 객체 ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client(); public MainPage() { InitializeComponent(); sc.strTestCompleted +=new EventHandler(sc_strTestCompleted); } void sc_strTestCompleted(object sender, ServiceReference1.strTestCompletedEventArgs e) { //데이터가 오면 처리할 것들 txtC.Text = e.Result; }
private void butGet_Click(object sender, System.Windows.RoutedEventArgs e) { //웹서비스로 데이터를 날리자~ //A내용을 보내 봅시다. sc.strTestAsync(txtA.Text); }