Параметр объекта WCF теряет значения - PullRequest
1 голос
/ 10 августа 2009

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

[DataContract]
public class Section {

    [DataMember]
    public long SectionID { get; set; }

    [DataMember]
    public string Title { get; set; }

    [DataMember]
    public string Text { get; set; }

    [DataMember]
    public int Order { get; set; }
}

Вот сервисный код метода:

[OperationContract]
public List<Section> LoadAllSections(Section s) {
    return SectionRepository.Instance().LoadAll(s);
}

Код, который на самом деле вызывает этот метод, находится в XAML-файле Silverlight:

SectionServiceClient proxy = new SectionServiceClient();
proxy.LoadAllSectionsCompleted += new EventHandler<LoadAllSectionsCompletedEventArgs>(proxy_LoadAllSectionsCompleted);
 Section s = new Section();
 s.SectionID = 4;
 proxy.LoadAllSectionsAsync(s);

Когда код, наконец, попадает в метод LoadAllSections (Section s), SectionID параметра не устанавливается. Я прошел по коду и, когда он входит в сгенерированный код, который возвращает объект IAsyncResult, свойства объекта устанавливаются. Но когда он на самом деле вызывает метод LoadAllSections, полученный параметр остается пустым. Есть ли что-то, что я должен установить, чтобы сделать proeprty палку между вызовами методов?

Ответы [ 2 ]

0 голосов
/ 11 августа 2009

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

0 голосов
/ 10 августа 2009

Работает просто отлично для меня - это может быть глупая опечатка ??

В вашем OperationContract вы определяете LoadAllSections, но в своем клиентском коде вы присоединяете обработчик событий к событию proxy.GetAllSectionsCompleted - может, это просто неправильный обработчик? Разве это не должно быть proxy.LoadAllSectionsCompleted ??

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...