RIA Services отслеживание изменений - PullRequest
0 голосов
/ 27 июня 2011

Я разрабатываю решение с помощью Silverlight RIA Services.Одним из требований является «push» уведомление клиентов, которое я реализую с помощью блокирующего вызова на сервере, которое возвращается при получении обновления.Пытаясь реализовать это с помощью общей структуры, я пришел к этой структуре данных:

    public class Change
{
    public ObjectType Type { get; internal set; } // objecttype is an enum
    public int ObjectKey { get; internal set; }
    public string PropertyName { get; internal set; }
    public object OldValue { get; internal set; }
    public object NewValue { get; internal set; }
    //key required for RIA Services
    [Key]
    public Guid ChangeGuid { get; private set; }
}

Помимо некоторых очевидных недостатков в этом проекте (это всего лишь тест), свойства OldValue и NewValue не видны на клиенте из-за их типа объекта.Значения этих свойств всегда будут Entity Framework примитивом .

. Есть ли способ получить OldValue и NewValue для клиента без преобразования всего в строки?

Поиск в Google не дал мне большого успеха из-за того, что ключевое слово object загромождает результаты поиска.

Любое общее решение по моей проблеме приветствуется.

1 Ответ

0 голосов
/ 30 июня 2011

Если вы сериализуете через WCF как «объект», вы не сможете неявно вводить другие интерфейсы / типы на стороне клиента. В любом случае, вы фактически сериализуете их как строки.

Внутренние подробности о том, какого рода объект "это действительно" не сохраняется при сериализации.

Как насчет одного обнуляемого члена для каждого значения перечисления ObjectType и установки только того, который вам нужен? Это может добавить небольшие накладные расходы к передаваемым данным, но может быть более управляемым и даст вам строго типизированные объекты.

...