Pregunta

Tengo una situación en la que necesito pasar una lista de objetos a mi servicio.Los objetos tienen que ser de tipo elemento.Tengo la interfaz de mi elemento definida así

public interface IElement{ }

Luego tengo mis datos de datos heredando esta clase de ielement....

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

También tengo un atributo conocido en mi interfaz de servicio como SO

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

El problema está en el lado del cliente, el tipo de iElement no está disponible en la deserialización de los tipos de servicios en el cliente.¿Alguna idea de lo que puedo estar haciendo mal aquí y cómo puedo hacerlo corregir esto por favor?

Ninguno

¿Fue útil?

Solución

No estoy 100 por ciento seguro que entiendo todo lo que está tratando de hacer aquí, pero me parece al revés.La forma habitual de utilizar el atributo SaberType es para decorar el tipo de base con los tipos derivados.Algo a lo largo de las líneas de:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top