WCF 서비스
새 프로젝트 -> WCF 서비스 라이브러리 -> 확인
확인을 하신 후 생성된 솔루션 파일들입니다.
IService1.cs
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; namespace HelloWCF { [ServiceContract] public interface IService1 { [OperationContract] Person GetData(int value); [OperationContract] void SetData(Person person); } [DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public string Age { get; set; } } }
Service1.cs
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; namespace HelloWCF { public class Service1 : IService1 { public static ListListPerson = new List (); public Person GetData(int value) { return ListPerson[value]; } public void SetData(Person person) { ListPerson.Add(person); } } }
그리고 솔루션 탐색기에서 App.config 오른쪽 마우스를 누른 후 [WCF 구성 편집] 을 클릭합니다.
그림에서 보시는 것처럼 Binding을 basicHttpBinding 으로 바꿔주세요.
이로써 WCF 서비스 측은 코딩이 완료 되었습니다.
컴파일을 해보면,
이런 화면이 뜨면 잘 오류없이 실행이 잘 된겁니다.
이 프로그램은 아직 종료하지 마시고, 다음 클라이언트측 프로젝트를 생성하세요.
그리고 이 주소를 접속할 클라이언트에서 알고 있어야하니 일단 주소를 복사해둡니다.
WCF 클라이언트
이제 WCF 서비스를 확인해야 할 클라이언트측 프로젝트를 만듭니다.
새 프로젝트 -> 윈폼 프로그램 프로젝트를 만듭니다.
그리고 코딩을 하기 전에 아까 만든 WCF 서비스의 서비스 참조를 추가합니다.
프로젝트 이름을 오른쪽 마우스로 클릭하시고, [서비스 참조 추가]를 클릭하세요.
그리고 방금 복사한 주소를 붙여넣기 하시고 이동을 누르시면 밑 서비스측에 저렇게 표시가 됩니다.
그리고 확인을 누르세요.
솔루션 탐색기를 보시면 서비스가 추가된 걸 보실수 있습니다.
이제 클라이언트측 코딩을 합시다.
클라이언트 디자인입니다.
TextBox 3개 - TextBox_Name, TextBox_Age, TextBox_Index
Button 2개 - Button_Set, Button_Receive
각각의 Name입니다.
그리고 Button 2개 모두 클릭 이벤트를 생성하였습니다.
그리고 코딩을 들어가시기 전에 위에 문자를 꼭 using 해주세요.
Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using HelloWCFClient.ServiceReference1; namespace HelloWCFClient { public partial class Form1 : Form { public Form1() { InitializeComponent(); } // 설정 버튼 클릭 private void Button_Set_Click(object sender, EventArgs e) { Person user = new Person(); user.Name = TextBox_Name.Text; user.Age = TextBox_Age.Text; Service1Client proxy = new Service1Client(); proxy.SetData(user); } // 받기 버튼 클릭 private void Button_Receive_Click(object sender, EventArgs e) { Service1Client proxy = new Service1Client(); Person user = new Person(); user = proxy.GetData(Convert.ToInt32(TextBox_Index.Text)); string strPesron = string.Format("이름 : {0}, 나이 : {1}", user.Name, user.Age); MessageBox.Show(strPesron); } } }
결과화면
2개를 저장하신후
0, 1을 입력하신후 받기를 누르시면 결과값을 받아옵니다.
'프로그래밍 > .NET' 카테고리의 다른 글
ListView Column 클릭시 정렬 (0) | 2012.10.25 |
---|---|
WCF 배포하기(IIS) (0) | 2012.10.18 |
현재 날짜, 시간 얻어오기(Stirng 반환) (0) | 2012.10.15 |
SQL - 주요클래스, 연결 (0) | 2012.10.11 |
#region (0) | 2012.08.16 |