|
WCF 서비스 추가하기 |
|
새 웹사이트 추가하기를 하여 WCF선택 후 자신의 ip주소를 사용하여 서비스를 만들어 주게 되면 솔루션탐색기 창과 같이 IService.cs와 Service.cs 파일 두개가 생성되게 된다. |
IService.cs |
[ServiceContract] public interface IService { [OperationContract] int Add(int a, int b); } |
간단히 Add 메서드를 만든다. |
Service.cs |
public class Service : IService { public int Add(int a, int b) { return a+b; } } |
Service 개체에 Add 메서드를 정의 한다. |
WCF 특성 |
|
[ServiceContract] |
인터페이스 (또는 클래스)에서 서비스 계약을 정의 합니다. 다음 사용 하는 OperationContractAttribute 계약의 서비스 작업을 정의 하는 클래스 (또는 인터페이스) 메서드의 특성입니다. 서비스 계약이 구현 되면 binding 및 EndpointAddress 개체에서 서비스 계약 클라이언트에서 사용할 수 있도록 노출 됩니다. |
[OperationContract] |
메서드는 서비스 계약의 일부로 WCF 서비스에서 노출하는 함수나 메서드는 OperationContractAttribute 특성을 표시하여 정의합니다. 이렇게 하면 클라이언트에서 데이터 바인딩을 수행할 수 있습니다. |
참고 : msdn |
WCF 서비스 참조 추가 |
|
Silverlight프로젝트 선택 후 오른쪽 마우스를 클릭하여 서비스참조 추가를 누른다. 누른 후 주소에 위와 같이 한 후 이동을 누르게 되면 서비스가 보이고 네임스페이스를 지정하여 확인버튼을 누르면 아래와 같이 추가된 것을 볼 수 있다. |
|
MainPage.xaml.cs |
public partial class MainPage : UserControl { private void button1_Click(object sender, RoutedEventArgs e) { AddService.ServiceClient sc = new AddService.ServiceClient(); sc.AddCompleted += new EventHandler<AddService.AddCompletedEventArgs>(sc_AddCompleted); sc.AddAsync(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
} void sc_AddCompleted(object sender, AddService.AddCompletedEventArgs e) { textBox3.Text = e.Result.ToString(); } } |
버튼클릭 이벤트를 만들어 서비스클라이언트에 대한 개체를 생성하고 해당 서비스의 Completed 된 이벤트를 추가하여 Async를 통해 해당 이벤트를 사용한다. |
실행 화면 |
|
숫자를 입력 후 Add버튼을 누르게 되면 값이 출력된다. |
|