Вопрос : WCF гнездилось сложные типы

Hi,

I имеет проблему подвергнуть действию тип через WCF, когда оно снабдит ссылками другой предмет, который я хотел был бы послать «вниз с провода» также.
To делает его более легким, здесь будет упрощенная структура которая показывает проблему:

There 3 типа: Показатель (низкопробный тип), OnsiteAppointment и клиент (оба наследуют от показателя). class= " lineNumbers " >
1 >

   _
    Общественный тип OnsiteAppointment
        Наследует показатель

        Приватное _startDate как DateTime
         _
        Общественное имущество StartDate () как DateTime
            Получите
                Возвратите _startDate
            Конец получает
            Установите (значение ByVal как DateTime)
                _startDate = значение
            Комплект конца
        Свойство конца

Приватное _customer как клиент
         _
        Клиент общественного имущества () как клиент
            Получите
                Возвратите _customer
            Конец получает
            Установите (значение ByVal как клиент)
                _customer = значение
            Комплект конца
        Свойство конца

Тип конца

  _
    Общественный клиент типа
        Наследует показатель

        Приватное _firstName как шнур
         _
        Общественное имущество FirstName () как шнур
            Получите
                Возвратите _firstName
            Конец получает
            Установите (значение ByVal как шнур)
                _firstName = значение
            Комплект конца
        Свойство конца
Тип конца

 _
Общественный показатель типа

Попытка >

I class= конца Class
1 >

Общественная функция GetAppointments (startDate ByVal как endDate DateTime, ByVal как DateTime) как инструменты IOnsiteScheduler.GetAppointments списка (OnsiteAppointment)

            Попытка

                Тусклые назначения как новый список (OnsiteAppointment)
…
                    Тусклое назначение как новое OnsiteAppointment
                    appointment.ID = читатель («appointmentId»)
                    appointment.StartDate = reader.SafeDate («startDate»)
                    .                    
                    Тусклый клиент как новый клиент
                    customer.FirstName = reader.SafeString («firstName»)

                   назначение. Клиент = клиент
                   назначения. Добавьте (назначение)
                   возвратите назначения
Закончите работы >

This class= Function

HTTP/1.1 504 - получите Failure
Content-Type: текст/html
Connection: close
Timestamp: 02:37: 54.822

ReadResponse () потерпело неудачу: Сервер не возвратил реакцию для этого запроса.                    

… и конечно терпеть неудачу клиента получая это вопрос в том, что message.

My: Будут мной делая неправильно здесь?
Obviously «показатель» не имеет никакую будучи подверганным действию проблему, в виду того что OnsiteAppointment получает, котор подвергли действию наилучшим образом. Не будет проблемы подвергая действию, котор гнездят тип (OnsiteAppointment.Customer) также. Так почему оно позаботил бы если клиент наследует от типа, то работает наилучшим образом как низкопробный тип для другого типа?

Are там все типы ограничений на уровне вложенности/снабжать ссылками другие типы возвращающ предметы? Я хотел был бы воздержаться от как раз загружать обыкновенные толком пустые собрания и после этого «связывать их вверх по» на клиенте - я предпочитал бы загружать структуру предмета как раз по мере того как я имею ее в помощи

Any слоя дела… был бы больш!
Thanks

Environment: .NET 4.0, ПРОТИВ 2010, IIS 7, Win7 64bit
class=

Ответ : WCF гнездилось сложные типы

Hi,

В WCF вы не можете заменить sub тип для низкопробного типа сразу по мере того как вы можете в C#.

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

KnownType - позволяет тип быть ым в течении всех подрядов и деятельностей using низкопробный тип.
Это будет appliedto DataContract.
C#: [KnownType (typeof (клиент))]

ServiceKnownType - позволяет тип быть ым только для деятельности на оно определен.
Это прикладной к подряду на обслуживание.

Лично я использую ServiceKnownType
C#: [ServiceKnownType (typeof (клиент))]
VB.NET: ustomer))> _

Имейте взгляд здесь
http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceknowntypeattribute.aspx

Понадейтесь что это помогает,

Даррен
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us