Предположим, у меня есть служба WCF и метод в контракте.
<ServiceContract()> _
Interface IThingService
'...
<OperationContract()> _
Function GetThing(thingId As Guid) As Thing
End Interface
где Thing — обычный класс с обычными свойствами, за исключением одного члена:
Public Class Thing
' ...
Public Property Photos() As Dictionary(Of String, Photo)
' ...
End Class
где Photo — обычный класс с обычными свойствами.
Поэтому я углубился в некоторые документы, такие как эта статья MSDN и < href="http://www.request-response.com/blog/PermaLink,guid,ff5fab81-affb-4b2b-aa67-c80bdfc86cbd.aspx" rel="nofollow noreferrer">этот пост в блоге, и теперь я сбит с толку, если мне нужно многое понять о DataContractSerializer и особенностях того, как служба сериализует свойство Photos.
Нужно ли мне идти туда, или я могу что-то сделать, чтобы WCF на сервере автоматически взаимодействовал с моим клиентом? Мне кажется, что все детали сериализации должны быть в состоянии быть абстрагированы - я просто хочу в конечном итоге в потребляющем клиентском приложении:
Dim foo as Thing = ThingServiceClient.GetThing(someGuid)
Dim myPhotos as Dictionary(Of String, Photo) = foo.Photos
Что мне нужно сделать в моем определении Вещи, чтобы это сработало? Что-нибудь, что мне нужно сделать в другом месте, чтобы заставить это работать? Нужно ли мне беспокоиться о том, чтобы служба оставалась привязанной к DataContractSerializer и не возвращалась к использованию XmlSerializer?