Доступ к методам бизнес-объектов из Silverlight - PullRequest
1 голос
/ 18 декабря 2010

Я новичок в Sliverlight и RIA Services, и я чуть не упал.

У меня есть приложение Silverlight, которому необходимо получить доступ к нашему DAL, чтобы получить наши пользовательские объекты для заполнения пользовательского интерфейса. Я настроил службу RIA. В моем веб-приложении я добавил DomainService, и он вызывает службу DAL, чтобы вернуть данные.

У меня есть отдельный проект, в котором размещены наши бизнес-объекты, и DomainService возвращает этот список этих объектов. В бизнес-объекте я добавил атрибут Key к свойству ID.

Все работает нормально. Я могу позвонить в службу, я могу получить список объектов. Я вижу их в своем приложении Silverlight и вижу все свойства своих объектов.

Единственное, что я не могу понять, это как получить доступ к методам. У меня есть несколько методов в моем бизнес-объекте, к которым мне нужно получить доступ в приложении Silverlight, но он не выглядит так, как будто этот метод доступен

Есть ли способ, которым я могу получить доступ к этим методам из класса? Или мне нужно написать оболочку в моем объекте DomainService, которая будет вызывать этот метод для меня? Я бы предпочел первый действительно.

Любая помощь будет принята с благодарностью. Это блокировало слишком долго.

1 Ответ

0 голосов
/ 19 декабря 2010

Звучит так, будто ты довольно близко.

Судя по тому, как вы описываете, это звучит так, как будто классы бизнес-объектов не созданы. Вам нужно поместить методы-заглушки в веб-проект (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 является лицо

Метод может иметь любое имя, параметры.

Может быть, я только что описал то, что вы не хотели делать ... если так, то извиняюсь.

...