RIA Services Invoke Operation возвращает сложный тип со свойствами объекта - PullRequest
3 голосов
/ 18 февраля 2012

Посмотрите на этот сложный тип, который в основном является DTO, который оборачивает некоторые объекты. Мне не нужно отслеживать эти объекты или использовать для обновления или что-то в этом роде, я просто хочу отправить их клиенту. Вещи наверху не являются сущностями, просто чтобы дать мне понять, что я не сумасшедший.

public class ResultDetail
{
    // non entities (some are even complex) - this works GREAT!
    public string WTF { get; set; }
    public IEnumerable<int> WTFs { get; set; }
    public SomethingElse StoneAge { get; set; }
    public IEnumerable<SomethingElse> StoneAgers { get; set; }


    // these are entities - none of this works
    public EntityA EntityA { get; set; }
    public IEnumerable<EntityB> EntityB { get; set; }
}

public class SomethingElse
{
    public int ShoeString { get; set; }
}

Теперь посмотрите на это:

http://i.snag.gy/tI9O9.jpg

Ни одно свойство сущности не отображается на сгенерированных типах на стороне клиента. Есть ли какие-либо атрибуты или что-то, что я могу или мне действительно нужно для создания объектов DTO для каждого из этих типов сущностей? Их больше 2, как в моем образце, и они имеют много свойств.

Кстати, эти типы сущностей были сгенерированы на клиенте из-за обычных операций запросов в доменной службе, которые работают с ними.

1 Ответ

0 голосов
/ 14 марта 2012

Это невозможно, поскольку текущая инфраструктура служб Ria в основном предназначена для отслеживания объектов, а для служб Ria невозможно определить, какие свойства сериализовать, а какие отметить, поскольку каждый объект имеет свойства навигации, свойства сериализации могут вызывать бесконечность циклы или длинные циклы, так как отсутствует контроль над тем, как перемещаться по графу объектов.

Вместо этого от вас ожидают, что вы запрограммируете своего клиента таким образом, чтобы вы правильно загружали отношения по требованию.

...