Silverlight入门学习(26)
2010-04-17 13:23
417 查看
原文地址: http://www.dingos.cn/index.php?topic=2000.0
第二十六章
创建一个新的
Silverlight
项目和具有承载
Silverlight
控件
Web
项目。
打开
Visual
Studio
并选择菜单“文件”
->
“新建”
->
“项目”
步骤:
1.
打开
Visual Studio
并选择菜单
“文件”
->
“新建”
->
“项目”
2.
在你喜欢的语言下面选择项目类型为“
Silverlight
”并选择“
Silverlight
应用程序”模板。
这里我们选择的是
Visual C#
。为项目命名为“
AccessSessionFromSilverlight
”并选择“为解决方案创建目录”选项因此所有项目文件多在文件夹结构中。
3.
在下一个对话框中,选择“为解决方案添加一个承载控件的
Web
”
4.
在
Visual Studio
创建解决方案
后,右键解决方案资源管理器中的
Web
项目并选择“添加新项”。
选择默认名字“
Service1.svc
”并按“添加”
按钮。
5.
从对话框左边面板选择“
Silverlight
”类别。从右边面板,选择“
Silverlight-enabled WCF
服务”模板。
6.
选择默认名字“
Service1.svc
”并按“添加”
按钮。
7.
你看到如下代码:
[ServiceContract
(Namespace =
""
)]
[AspNetCompatibilityRequirements
(RequirementsMode
=
AspNetCompatibilityRequirementsMode
.Allowed)]
public
class
Service1
{
[OperationContract
]
public
void
DoWork() {
//
在此处添加操作实现
return
;
}
//
在此处添加更多操作并使用
[OperationContract]
标记它们
}
按如下显示添加新的
方法:
[OperationContract
]
public
object
GetSessionVariable(string
key)
{
return
System.Web.HttpContext
.Current.Session[key];
}
8.
打开解决方案资源管理器。右键“
Service1.svc
”文件并选择“设为起始页”
9.
按
Ctrl + F5
运行应用程序(或使用
菜单“调试”
–>
“开始执行不调试”)。
在浏览器打开
Service1
元数据并显示。忽略页面内容,从浏览器复制
URL
。
URL
类似于:
http://localhost:1873/Service1.svc
这个端口号可能会不
同。
10.
回到
Visual Studio
的解决方案管
理器。右键
Silverlight
项目(不是
Web
项目)并选择“添加
Service
引用”。
在地址域中,指定从
浏览器中复制的
URL
,点击“前往”。
在底部左边,修改命
名空间为“
MySampleService
”。点击“确定”按钮添加服务引用。
现在可以从
Silverlight
客户端调用
WCF
服务。
按下面步骤测试:
1.
打开
Page1.xaml
文件并添加一个文本
框用于显示从
WCF
方法返回的字符串。
2.
从
UserControl
中添加“
Loaded
”事件。
Page1.xaml
中的完整代码如下:
<
UserControl
x
:
Class
="Silverlight_With_WCF.Page"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns
:
x
="http://schemas.microsoft.com/winfx/2006/xaml"
Width
="400"
Height
="300"
Loaded
="UserControl_Loaded">
<
Grid
x
:
Name
="LayoutRoot"
Background
="White">
<
TextBlock
x
:
Name
="textblock1"
Width
="200"
Height
="30"></
TextBlock
>
</
Grid
>
</
UserControl
>
现在在后置代码中(
Page1.xaml.cs
)中,按如下方式添加
WCF
服务调用:
private
void
UserControl_Loaded(object
sender,
RoutedEventArgs
e)
{
MyService.Service1Client
client
=
new
AccessSessionFromSilverlight.MyService.Service1Client
();
client.GetSessionVariableCompleted +=
new
EventHandler
<AccessSessionFromSilverlight.MyService.
GetSessionVariableCompletedEventArgs
>(
client_GetSessionVariableCompleted);
client.GetSessionVariableAsync("Name"
);
}
void
client_GetSessionVariableCompleted(object
sender,
AccessSessionFromSilverlight.MyService.
GetSessionVariableCompletedEventArgs
e) {
if
(e.Result == null
)
textblock1.Text = "Session
variable not set"
;
else
textblock1.Text = e.Result.ToString();
}
在解决方案资源管理器中打开
Web
项目,并设置
Silverlight
测试页面为起始页码。运行项目。可以看到
Silverlight
客户端调用
WCF
服务的显示结果。
第二十六章
创建
WCF
访问检索
Session
数据
- part II
创建一个新的Silverlight
项目和具有承载
Silverlight
控件
Web
项目。
打开
Visual
Studio
并选择菜单“文件”
->
“新建”
->
“项目”
步骤:
1.
打开
Visual Studio
并选择菜单
“文件”
->
“新建”
->
“项目”
2.
在你喜欢的语言下面选择项目类型为“
Silverlight
”并选择“
Silverlight
应用程序”模板。
这里我们选择的是
Visual C#
。为项目命名为“
AccessSessionFromSilverlight
”并选择“为解决方案创建目录”选项因此所有项目文件多在文件夹结构中。
3.
在下一个对话框中,选择“为解决方案添加一个承载控件的
Web
”
4.
在
Visual Studio
创建解决方案
后,右键解决方案资源管理器中的
Web
项目并选择“添加新项”。
选择默认名字“
Service1.svc
”并按“添加”
按钮。
5.
从对话框左边面板选择“
Silverlight
”类别。从右边面板,选择“
Silverlight-enabled WCF
服务”模板。
6.
选择默认名字“
Service1.svc
”并按“添加”
按钮。
7.
你看到如下代码:
[ServiceContract
(Namespace =
""
)]
[AspNetCompatibilityRequirements
(RequirementsMode
=
AspNetCompatibilityRequirementsMode
.Allowed)]
public
class
Service1
{
[OperationContract
]
public
void
DoWork() {
//
在此处添加操作实现
return
;
}
//
在此处添加更多操作并使用
[OperationContract]
标记它们
}
按如下显示添加新的
方法:
[OperationContract
]
public
object
GetSessionVariable(string
key)
{
return
System.Web.HttpContext
.Current.Session[key];
}
8.
打开解决方案资源管理器。右键“
Service1.svc
”文件并选择“设为起始页”
9.
按
Ctrl + F5
运行应用程序(或使用
菜单“调试”
–>
“开始执行不调试”)。
在浏览器打开
Service1
元数据并显示。忽略页面内容,从浏览器复制
URL
。
URL
类似于:
http://localhost:1873/Service1.svc
这个端口号可能会不
同。
10.
回到
Visual Studio
的解决方案管
理器。右键
Silverlight
项目(不是
Web
项目)并选择“添加
Service
引用”。
在地址域中,指定从
浏览器中复制的
URL
,点击“前往”。
在底部左边,修改命
名空间为“
MySampleService
”。点击“确定”按钮添加服务引用。
现在可以从
Silverlight
客户端调用
WCF
服务。
按下面步骤测试:
1.
打开
Page1.xaml
文件并添加一个文本
框用于显示从
WCF
方法返回的字符串。
2.
从
UserControl
中添加“
Loaded
”事件。
Page1.xaml
中的完整代码如下:
<
UserControl
x
:
Class
="Silverlight_With_WCF.Page"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns
:
x
="http://schemas.microsoft.com/winfx/2006/xaml"
Width
="400"
Height
="300"
Loaded
="UserControl_Loaded">
<
Grid
x
:
Name
="LayoutRoot"
Background
="White">
<
TextBlock
x
:
Name
="textblock1"
Width
="200"
Height
="30"></
TextBlock
>
</
Grid
>
</
UserControl
>
现在在后置代码中(
Page1.xaml.cs
)中,按如下方式添加
WCF
服务调用:
private
void
UserControl_Loaded(object
sender,
RoutedEventArgs
e)
{
MyService.Service1Client
client
=
new
AccessSessionFromSilverlight.MyService.Service1Client
();
client.GetSessionVariableCompleted +=
new
EventHandler
<AccessSessionFromSilverlight.MyService.
GetSessionVariableCompletedEventArgs
>(
client_GetSessionVariableCompleted);
client.GetSessionVariableAsync("Name"
);
}
void
client_GetSessionVariableCompleted(object
sender,
AccessSessionFromSilverlight.MyService.
GetSessionVariableCompletedEventArgs
e) {
if
(e.Result == null
)
textblock1.Text = "Session
variable not set"
;
else
textblock1.Text = e.Result.ToString();
}
在解决方案资源管理器中打开
Web
项目,并设置
Silverlight
测试页面为起始页码。运行项目。可以看到
Silverlight
客户端调用
WCF
服务的显示结果。
相关文章推荐
- JavaSE入门学习26:Java异常处理(下)
- Silverlight入门学习(5)
- Silverlight入门学习(9)
- Silverlight入门学习(16)
- [BX]和loop指令04 - 零基础入门学习汇编语言26
- Silverlight入门学习(24)
- Silverlight入门学习(29)
- 数组04 - 零基础入门学习C语言26
- 围观窗体与组件04 - 零基础入门学习Delphi26
- ArcGIS API for Silverlight 入门学习笔记(三):基础地图实例
- Silverlight入门学习(1)
- Silverlight入门学习(6)
- Silverlight入门学习(10)
- Silverlight入门学习(17)
- [BX]和loop指令04 - 零基础入门学习汇编语言26
- 游戏编程入门学习笔记26——AI篇——AI的实现
- Python 学习入门(26)—— 装饰器
- Silverlight入门学习(11)
- Silverlight入门学习(18)
- Silverlight入门学习(34)