Question

J'ai une situation où j'ai besoin de transmettre une liste d'objets à mon service.Les objets doivent être d'élément de type.J'ai mon interface d'élément défini comme si

public interface IElement{ }

Puis j'ai mes données de données héritant cette classe d'ielement comme....

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

J'ai aussi un attribut connu de type sur mon interface de service comme

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

Problème est du côté du client, le type d'ielement n'est pas disponible sur la désérialisation des types de services sur le client.Avez-vous une idée de ce que je peux faire mal ici et comment je peux faire de la correction de cela s'il vous plaît?

Aucune

Était-ce utile?

La solution

Je ne suis pas sûr à 100% Je comprends tout ce que vous essayez de faire ici, mais cela me semble à l'envers.Le moyen habituel d'utiliser l'attribut connu de type consiste à décorer le type de base avec les types dérivés.Quelque chose dans le sens de:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top