我是Sliverlight和RIA Services的新手,我已经打了一个墙。
我有一个Silverlight应用程序需要访问我们的DAL以获取我们的自定义对象来填充UI。我设置了RIA服务。在我的网络应用程序中,我添加了一个DomainService,它调用DAL服务来获取数据。
我有一个单独的项目来存放我们的业务对象,DomainService返回这些对象的列表。在业务对象中,我已将Key属性添加到ID属性中。
一切都很好。我可以调用该服务,我可以获取对象列表。我可以在我的Silverlight应用程序中看到它们,我可以看到我的对象的所有属性。
我唯一不知道的是如何访问这些方法。我在我的Business对象中有一些方法需要在我的Silverlight应用程序中访问,但它看起来并不像是暴露了方法。
有没有办法可以从课堂上访问这些方法?或者我必须在我的DomainService对象中编写一个包装器,它将为我调用此方法?我真的很喜欢第一个。
非常感谢任何帮助。这已经很长时间了。
答案 0 :(得分:0)
听起来你非常接近。
从您描述的方式来看,听起来似乎没有实例化业务对象类。您需要将“存根”方法放入Web项目(DomainService)中,以允许Silverlight使用业务对象上的方法。
在您的DomainService类中:
using System.ServiceModel.DomainServices.Hosting;
using System.ServiceModel.DomainServices.Server;
using XYX.YourBusinessClassLibrary; <-- need reference in web app
[EnableClientAccess()]
public class linkdirectoryDS : DomainService
{
public IEnumerable<Category> GetCategories()
{
Category cat = new Category();
return cat.Retrieve();
}
}
关于 GetCategories 方法:
它必须是一种方法而不是财产。
必须返回以下内容之一:
该方法可以有任何名称,参数。
也许我刚刚描述了你不想做的事情......如果是的话,我道歉。