1 웹콘피그 설정
wsHttpBinding 를 basicHttpBinding 변경
<service behaviorConfiguration="TESTSliverlight.Web.Service1Behavior"
name="TESTSliverlight.Web.Service1">
<endpoint address="" binding="basicHttpBinding" contract="TESTSliverlight.Web.IService1">
<!--
<endpoint address="" binding="wsHttpBinding" contract="TESTSliverlight.Web.IService1">
-->
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
2. wcf 웹서비스로 전달할 클래스 만들기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;
using System.Runtime.Serialization;
namespace TESTSliverlight.Web
{
[DataContract]
public class WCFBook
{
public WCFBook(string BookTitle) {
this.BookTitle = BookTitle;
}
[DataMember]
public string BookTitle { get; set; }
}
}
3.웹서비스 만들기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace TESTSliverlight.Web
{
// NOTE: If you change the class name "Service1" here, you must also update the reference to "Service1" in Web.config.
public class Service1 : IService1
{
public void DoWork()
{
}
public List<WCFBook> GetBookData()
{
//하나의 값만 보내고 싶으면 return WCFBook 하면된다
//실버라이트에서 받을땐 e.result.BookTitle 이런씩으로 받으면 됩니다
List<WCFBook> li = new List<WCFBook>();
li.Add(new WCFBook("1111"));
li.Add(new WCFBook("2222"));
li.Add(new WCFBook("3333"));
return li;
}
}
}
실버라이트에서 처리하기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ServiceModel.Channels;
using System.ServiceModel;
using System.Collections.ObjectModel;
namespace TESTSliverlight
{
public partial class DataList : UserControl
{
ServiceBook.Service1Client sclient;
EndpointAddress defaultAddress;
public DataList()
{
InitializeComponent();
Binding defaultBinding = new System.ServiceModel.BasicHttpBinding();
defaultAddress = new System.ServiceModel.EndpointAddress("http://localhost:62711/Service1.svc");
sclient = new TESTSliverlight.ServiceBook.Service1Client(defaultBinding, defaultAddress);
sclient.GetBookDataCompleted += new EventHandler<TESTSliverlight.ServiceBook.GetBookDataCompletedEventArgs>(sclient_GetBookDataCompleted);
sclient.GetBookDataAsync();
}
void sclient_GetBookDataCompleted(object sender, TESTSliverlight.ServiceBook.GetBookDataCompletedEventArgs e)
{
this.ListWCF.ItemsSource = e.Result; //리스트 박스에 데이터 바인딩
}
}
}
-----------------------------------------------------------------------------------------------------------------------
<UserControl x:Class="TESTSliverlight.DataList"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="440" Height="392" xmlns:TESTSliverlight="clr-namespace:TESTSliverlight"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:SB="clr-namespace:TESTSliverlight.ServiceBook">
<UserControl.Resources>
<SB:WCFBook x:Key="WCFBookDS" d:IsDataSource="True"/>
<DataTemplate x:Key="BookTitleTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=BookTitle}" />
<TextBlock Text="{Binding Path=BookTitle}" />
<TextBlock Text="{Binding Path=BookTitle}" />
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock Height="48" HorizontalAlignment="Left" Margin="8,8,0,0" VerticalAlignment="Top" Width="192" Text="DATA LIST" TextWrapping="Wrap"/>
<ListBox Name="ListWCF" Margin="64,96,184,120" DataContext="{StaticResource WCFBookDS}"
ItemsSource="{Binding WCFBook}" ItemTemplate="{StaticResource BookTitleTemplate}"/>
</Grid>
</UserControl>
'WPF' 카테고리의 다른 글
DataGrid 템플릿 (0) | 2010.01.02 |
---|---|
간단한 data grid 사용법 (0) | 2010.01.02 |
쿠키사용법 (0) | 2009.12.15 |
웹 페이지에 Silverlight 추가 (0) | 2009.12.15 |
간단하게 세션처럼 사용하기?! (0) | 2009.12.15 |
ResizeGrip - Resizing (Mostly Custom) Windows (0) | 2009.12.15 |
SplashScreen 만들기 (0) | 2009.12.15 |
초간단 실버라이트 웹서비스 사용하기 (0) | 2009.06.30 |
컨테이너(Container) (0) | 2009.06.03 |
모듈화 (0) | 2009.06.03 |