Отсутствуют свойства объекта в службе WCF с SubSonic?

#c# #wcf #subsonic #wcf-client #datacontract

#c# #wcf #subsonic #wcf-клиент #datacontract

Вопрос:

Я написал базовую службу WCF, которая использует SubSonic для извлечения данных.

После публикации службы я использую ее в приложении C #. При вызове метода, который использует этот SubSonic запрос, я получаю обратно нужное количество объектов из базы данных, но ни один из них не содержит свойств базы данных и их значений. Похоже, что только дозвуковые свойства.

Дозвуковой DAL содержится в отдельном проекте, на который ссылается проект службы WCF.

Интерфейс службы WCF:

    [OperationContract]
   GeoLocationCollection GetGeoLocations(long websiteID);
  

Рабочий метод:

     public GeoLocationCollection GetWebsiteGeoLocations(long websiteID)
    {
        GeoLocationCollection locationsCollection = new Select()
                                .Where(GeoLocation.Columns.WebsiteID).IsEqualTo(1)
                                .From(GeoLocation.Schema)
                                .ExecuteAsCollection<GeoLocationCollection>();
        return locationsCollection;
    }
  

Как GeoLocationCollection, так и GeoLocation были автоматически оформлены с помощью [Serializable] .

Служба используется следующим образом:

 MyService.MyServiceClient client = new MyService.MyServiceClient();
var result = client.GetWebsiteGeoLocations(1);

foreach (MyService.GeoLocation location in result)
{
    // do stuff
}
  

Итак, еще раз, почему я не вижу ни одного из моих реальных свойств / значений таблицы в location?

Ответ №1:

Для служб WCF требуется атрибут [DataContract] [DataMember], а не [Serializable]. Возможно, это причина, по которой вы не получаете значения атрибутов.

Комментарии:

1. Отлично, спасибо. Теперь я вижу, что предыдущий участник предложил изменить DataContract и DataMember. Я ошибся в своем впечатлении о сериализуемости. Спасибо!