我是Silverlight和CSLA的新手,我需要让一个示例项目正常工作。我收到了Lhotka 2008年关于CSLA的书籍,以及它随附的Silverlight电子书+示例项目。
我认为创建一个Silverlight 5 MVVM Light项目相当简单,该项目通过数据门户(数据门户/通道适配器配置为使用WCF)获取CSLA 4.3对象但无法从中获取CSLA对象服务器
注意:如果我将CSLA排除在等式之外并且只使用Linq to SQL或Entity Framework以及WCF RIA服务调用我可以从服务器获取对象并在silverlight中显示它们就好了,但是因为我无法使用在这个项目中我必须让CSLA工作。
我的步骤:
为.Web项目添加了服务
<%@ 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)。 .Client项目是一个Silverlight类库,.Server是一个类库。然后我链接了所有我的CSLA对象(添加现有引用,添加为链接)以及所有必需的引用(csla / csla silverlight dlls)。在MyProject上我添加了一个引用.Client项目和MyProject.Web上我添加了对.Server项目的引用。
现在我应该有一个工作项目,并希望从服务器获取一个项目或一个项目列表。在构造函数的主ViewModel中,我尝试了两种不同的东西。当我使用
MyMobileObjItemList.GetAllAsync(HandleReturnedArgs);
回调方法EventArgs有一个错误“System.IO.FileNotFoundException:无法加载文件或程序集”MyProject.CSLA.Client“。我发现这很奇怪,因为Silverlight应用程序引用了这个项目和MyProject。 Web不应该使用.Client引用,因为它具有.Server引用。
当我使用
时DataPortal<MyMobileObjItemList> dp = new DataPortal<MyMobileObjItemList>();
dp.FetchCompleted += HandleReturnedArgs;
dp.BeginFetch();
回调方法EventArgs有一个错误“System.InvalidOperationException:无法加载对象类型或程序集(MyProject.CSLA.MyMobileObjItemList,MyProject.CSLA.Client”。
我不确定这些错误发生在哪里(在客户端或服务器上?)因为它是Csla.DataPortalException我认为这是服务器错误。
我不知道怎么做一个简单的电话,或者这是正确的做事方式,因为我能找到的所有例子都没有这样做,对我来说似乎不清楚。
我知道要合并很多部分,可能很难简洁地给出答案,但我真的很感激帮助(代码,链接下载示例等)。
问题:
答案 0 :(得分:0)
要修复错误错误,我将.Client和.Server项目的程序集和默认名称空间更改为与.CSLA项目完全匹配(在项目属性中设置)
有关详细信息,请参阅this forum discussion