1

我是 Sliverlight 和 RIA Services 的新手,我遇到了一些困难。

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

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

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

我唯一不知道的是如何访问这些方法。我的业务对象中有一些方法需要在我的 Silverlight 应用程序中访问,但它看起来好像没有公开该方法。

有没有办法可以从类中访问这些方法?还是我必须在我的 DomainService 对象中编写一个包装器来为我调用此方法?我宁愿第一个真的。

任何帮助将不胜感激。这已经阻塞了太久了。

4

1 回答 1

0

听起来你很接近。

从您描述的方式来看,这听起来像是业务对象类没有被实例化。您需要将“存根”方法放入允许 Silverlight 使用业务对象上的方法的 Web 项目 (DomainService)。

在您的 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 是实体

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

也许我只是描述了你不想做的事情......如果是这样我道歉。

于 2010-12-19T05:14:30.667 回答