отправка сложных структур через службы WCF RIA - PullRequest
1 голос
/ 23 ноября 2011

У меня проблемы с отправкой сложной структуры.У меня есть два класса.Я отправляю через сервисы ria список сообщений, каждое сообщение содержит список классов, описывающих людей, участвующих в разговоре - MailInfo

public class Message
{
    [Key] 
    public string Id { get; set;}
    public string ParentId { get; set; }
    public List<MailInfo> Email { get; set; }
}

public class MailInfo
{
    [Key]
    public string Address { get; set; }
}

Для отправки списка сообщений я использую

[Query]
public IQueryable<Message> GetMessage() {return null;}
[Query]
public IQueryable<MailInfo> GetMailInfo() { return null; }

и в конечном итоге

[Invoke]
public List<Message> SomeMethod ()
{ return listofMessages; }

Но я не могу получить доступ к полю электронной почты сообщения.Можно что то сделать?Или просто такие сложные структуры еще не поддерживаются в silverlight?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

На самом деле я обнаружил, что вы не можете правильно отправить объект такого класса.Дело в том, что службы RIA отключают установщик для не-POCO-объектов класса, который вы собираетесь отправлять.Вы можете увидеть это в сгенерированном коде .Web.g.cs.Единственное красивое решение, которое я обнаружил, - это отправить List EMail в виде сериализованной строки.Поэтому после этого все ваши поля в сущности будут POCO, и вы, наконец, получите объект.

1 голос
/ 23 ноября 2011
public class Message
{
    [Key] 
    public string Id { get; set;}
    public string ParentId { get; set; }
    [Include]
    public List<MailInfo> Email { get; set; }
}

public class MailInfo
{
    [Key]
    public string Address { get; set; }
}

Попробуйте использовать атрибут. Если он связан с вашей базой данных, он должен получить их для вас.

...