如何配置 Silverlight + CSLA Data Portal
本文关键字:CSLA Data Portal Silverlight 何配置 配置 | 更新日期: 2023-09-27 18:34:19
我是Silverlight和CSLA的新手,我需要有一个示例项目工作。 我既有Lhotka在2008年出版的关于CSLA的书,也有它附带的Silverlight电子书+示例项目。
我认为创建一个 Silverlight 5 MVVM Light 项目相当简单,该项目通过数据门户(配置为使用 WCF 的数据门户/通道适配器(获取 CSLA 4.3 对象,但无法从服务器获取 CSLA 对象。
注意:如果我将 CSLA 排除在外,只使用 Linq to SQL 或实体框架和 WCF RIA 服务调用,我可以从服务器中获取对象并在 silverlight 中很好地显示它们,但由于我不能在此项目中使用它,我必须让 CSLA 工作。
我的步骤:
- 创建了一个 Silverlight 业务应用程序 - 获取 MyProject (SL( 和 MyProject.Web (WCF(
-
向 中添加了服务。网络项目
<% @ServiceHost Service="Csla.Server.Hosts.Silverlight.WcfPortal" %>.
在 SL 项目中引用了我的 App.xaml Application_Startup方法中的服务
Csla.DataPortalClient.WcfProxy.DefaultUrl = "http://localhost:14790/Services/MyTestCslaSilverlightWcfService.svc";.
添加了一个简单的 CSLA 业务层项目 (MyProject.CSLA(,该项目具有一组测试对象(MyMobileObjItem.cs、MyMobileObjItemList.cs(
添加了另外两个项目(MyProject.CSLA.Client 和 MyProject.CSLA.Server(。这。客户端项目是一个 Silverlight 类库,即 .服务器是一个类库。 然后,我链接了我所有的CSLA对象(添加现有引用,添加为链接(以及所有必要的引用(csla/csla silverlight dlls(。 在我的项目上,我添加了一个引用。客户端项目,在 MyProject.Web 上,我添加了对 .服务器项目。
现在我应该有一个工作项目,并希望从服务器获取一个项目或项目列表。 在构造函数的主视图模型中,我尝试了两种不同的东西。当我使用
MyMobileObjItemList.GetAllAsync(HandleReturnArgs(;
回调方法 EventArgs 出现错误"System.IO.FileNotFoundException: 无法加载文件或程序集"MyProject.CSLA.Client"。 我觉得这很奇怪,因为 Silverlight 应用程序引用了这个项目,而 MyProject.Web 不应该需要 .客户端引用,因为它具有 .服务器引用。
当我使用
DataPortal<MyMobileObjItemList> dp = new DataPortal<MyMobileObjItemList>();
dp.FetchCompleted += HandleReturnedArgs;
dp.BeginFetch();
回调方法 EventArgs 出现错误"System.InvalidOperationException: 无法加载对象类型或程序集(MyProject.CSLA.MyMobileObjItemList, MyProject.CSLA.Client(。
我不确定这些错误发生在哪里(在客户端或服务器上? 由于它是Csla.DataPortalException,我假设这是一个服务器错误。
我不确定如何做一个简单的电话,或者这是否是正确的做事方式,因为我能找到的所有例子都不是这样做的,对我来说似乎不清楚。
我知道这需要很多部分组合在一起,可能很难简洁地给出答案,但我真的很感激帮助(代码、下载示例链接等(
问题:
- 是否有一个简单的 Silverlight MVVM Light 项目示例,它调用一个远程数据门户来获取对象以及如何使其工作/所有部分如何组合在一起的文档? 同样,我有电子书 Silverlight 项目,但它使用 bxf 和本书刚刚提到的大多数数据门户参考资料,以便在数据门户上查看其他电子书(我没有 - 我会买它,但该网站需要几天时间才能允许访问 pdf。 真的很差的网站(。或
- 有人可以解释我做错了什么吗?
为了修复错误错误,我更改了我的 .客户端和 .服务器项目与 .CSLA 项目(在项目属性中设置(
有关详细信息,请参阅此论坛讨论