从Silverlight访问业务对象方法

时间:2010-12-17 22:49:21

标签: silverlight-4.0 ria domainservices

我是Sliverlight和RIA Services的新手,我已经打了一个墙。

我有一个Silverlight应用程序需要访问我们的DAL以获取我们的自定义对象来填充UI。我设置了RIA服务。在我的网络应用程序中,我添加了一个DomainService,它调用DAL服务来获取数据。

我有一个单独的项目来存放我们的业务对象,DomainService返回这些对象的列表。在业务对象中,我已将Key属性添加到ID属性中。

一切都很好。我可以调用该服务,我可以获取对象列表。我可以在我的Silverlight应用程序中看到它们,我可以看到我的对象的所有属性。

我唯一不知道的是如何访问这些方法。我在我的Business对象中有一些方法需要在我的Silverlight应用程序中访问,但它看起来并不像是暴露了方法。

有没有办法可以从课堂上访问这些方法?或者我必须在我的DomainService对象中编写一个包装器,它将为我调用此方法?我真的很喜欢第一个。

非常感谢任何帮助。这已经很长时间了。

1 个答案:

答案 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 方法:

它必须是一种方法而不是财产。

必须返回以下内容之一:

  • 单个实体
  • 一个IEnumerable,其中T是 实体
  • 一个IQueryable,其中T是 实体

该方法可以有任何名称,参数。

也许我刚刚描述了你不想做的事情......如果是的话,我道歉。