MyType <T>DataContract находится в клиенте Silverlight MyTypeOfT - PullRequest
1 голос
/ 11 мая 2011

У меня есть служба WCF с Property<T> DataContract (с KnownType и т. Д.), Но в клиенте Silverlight у меня есть только PropertyOfint, PropertyOfstring, ... типы, но мне нужно в Silverlight также универсальный тип.Как?

1 Ответ

1 голос
/ 11 мая 2011

Стандарт SOAP не поддерживает концепцию обобщений, поэтому он не поддерживается непосредственно в WCF.Однако вы можете добиться этой поддержки, если вы управляете и клиентом, и службой WCF , разделяя DLL-библиотеку ServiceContract между клиентом и службой.Убедитесь, что это действительно то, что вам нужно, поскольку , а не рекомендуемая лучшая практика SOA.

Здесь - это статья , в которой описывается, как работает этот подход.При совместном использовании ServiceContract ( не DLL реализации службы) и использовании класса WCF ChannelFactory вам не нужно создавать прокси-класс, поскольку класс ChannelFactory сделает это динамически за вас.Сборка ServiceContract также должна содержать все отмеченные классы DataMember, на которые ссылаются, что является основным недостатком этого подхода, поскольку любая содержащаяся в них логика также будет использоваться совместно.Пока классы DataMember являются просто объектами передачи данных (DTO), вы не будете полностью изгибать объекты SOA.В статье также объясняется, как это сделать с помощью класса WCF ClientBase.

...