Utilisation de connaissancesAribute dans le service WCF
-
13-09-2020 - |
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
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
{
....