Использование KnowTypeAttribute в службе WCF - PullRequest
0 голосов
/ 08 июля 2010

У меня есть ситуация, когда мне нужно передать список объектов моему сервису.Объекты должны быть типа ЭЛЕМЕНТ.Мой интерфейс Element определен так:

public interface IElement{ }

Тогда у меня есть DataContracts, наследующие этот класс IElement. Вот так.,,,

[KnownType(typeof(Common.IElement))]
[DataContract]
public abstract class IPet : IElement
 {.....}

У меня также есть атрибут KnownType на моем интерфейсе службы, например

[ServiceContract(Name="Pets", SessionMode = SessionMode.Allowed)]
[ServiceKnownType(typeof(Memberships.PetServiceUser))]
[ServiceKnownType(typeof(.Common.IElement))]
[DeliveryRequirements(RequireOrderedDelivery=true)] 
public interface IPetService {.....}

Проблема на стороне клиента, тип IElement недоступен при десериализации типов служб на клиенте,Любая идея, что я могу делать здесь не так и как я могу исправить это, пожалуйста?

Нет

1 Ответ

0 голосов
/ 09 июля 2010

Я не уверен на 100 процентов, что понимаю все, что вы пытаетесь сделать здесь, но мне это кажется перевернутымОбычный способ использования атрибута KnownType - украшать базовый тип производными типами.Что-то вроде:

[DataContract]
[KnownType(typeof(Pet))]
[KnownType(typeof(...
...
public class Element: IElement
{
....
...