博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多个Silverlight应用程序如何共享一个DomainService
阅读量:6970 次
发布时间:2019-06-27

本文共 1244 字,大约阅读时间需要 4 分钟。

WCF RIA Services使用DomainService提供数据访问等服务,如果在Silverlight中使用,只要设置了WCF RIA连接,就能自动生成数据访问的客户端代理类,这为我们开发提供了方便。

我们通常是建立一个Silverlight Bussiness Application的项目,其中包含一个Silverlight项目作为客户端,一个Web结尾的项目承载我们的Domain Service服务。

刚开始我还受用这种模式,数据访问那么的自然,没有多余的WCF请求代码。然而当我做第二个应用程序时,遇到了麻烦,我该如何重用第一个应用程序中已经写好的Domain Service呢?我首先想到了把我的SL连接到上一个Web项目,然而一个SL应用只能连接一个Web项目,我不想把所有代码都放在一个应用程序下面,并且如果我要连接的web项目不是我开发的,我又该怎么连接?然后,我想到了添加服务引用,就像WCF服务一样,然而Domain Service总是不被其他SL项目发现,需要配置web.config将Endpoints暴露出来,并且这样等于放弃了WCF RIA Services的优势。

最后,终于找到了解决方法:使用WCF RIA Service类库。然而类库并不能独立发布,必须在Web项目中承载后,才能供我们访问,这样我们的解决方案的结构应该是:

其中ShareRIAServices开头的俩项目是WCF RIA Service类库项目,一个用于供silverlight项目引用,一个供Web项目引用。

FistSilverlight.Web项目承载DomainSerive服务ShareRIAServices.Web,提供访问。

AnotherSLApp引用ShareRIAServices,其中包含了自动生成的客户端Proxy代码。并且包含在另一个应用AnotherWeb中.

由于URL路径不同,我们Context类需要指定DomainService的URL地址:

const string ServicePath = "http://localhost:52878/ShareRIAServices-Web-ShareDomainService.svc";  ShareRIAServices.Web.ShareDomainContext sc = new ShareDomainContext(new Uri(ServicePath));

服务的命名是名称空间+类名.svc,其中用“-”连接。

这样任何需要使用ShareRIAServices.Web中的DomainService服务的SL应用程序,只需要引用ShareRIAServices即可,如果是别人开发的,只需要引用ShareRIAServices.dll就行。

 

转载于:https://www.cnblogs.com/slmk/archive/2011/11/14/2248661.html

你可能感兴趣的文章
系统性能瓶颈分析
查看>>
防止重复点击提交,仅提交一次的终极绝杀技[高清、有码]
查看>>
p2824 [HEOI2016/TJOI2016]排序
查看>>
回文树学习笔记
查看>>
hadoop与hbase对应的支持版本
查看>>
转:JavaScript Promises相当酷:一种有趣的方案库
查看>>
python 异步IO-协程
查看>>
继承进阶
查看>>
out对象
查看>>
ADO 连接数据库,取到VT_DATE型日期转换成 int型
查看>>
Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
查看>>
50% 的财富 500 强企业使用 Windows Azure
查看>>
手机号码归属地查询免费api接口代码
查看>>
java8新特性使用
查看>>
“VS无法连接远程数据库”解决方案
查看>>
左值、右值、右值引用与move()、forward()
查看>>
hibernate基于注解的维护权反转:@OneToMany(mappedBy=)
查看>>
JS_简单无缝图片滚动
查看>>
如何关闭SQL进程
查看>>
编程高手
查看>>