您的位置:首页 > 其它

Silverlight入门学习(26)

2010-04-17 13:23 417 查看
原文地址: http://www.dingos.cn/index.php?topic=2000.0

第二十六章

创建

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
服务的显示结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: