Après avoir lu la documentation et de nombreux articles, je crois que les éléments suivants devraient fonctionner, mais ce n'est pas le cas.KnownType Sérialisation Problème
C'est ainsi que mes contrats de données sont structurés.
[DataContract]
[KnownType(typeof(Friend))]
public class Person
{
private string name;
[DataMember]
public string Name { get { return name; } set { name = value; }}
private Place location;
[DataMember]
public Place Location { get { return location; } set { location = value; }}
}
[DataContract]
public class Friend : Person
{
private int mobile;
[DataMember]
public int Mobile { get { return mobile; } set { mobile = value; }}
}
[DataContract]
[KnownType(typeof(City))]
public class Place
{
private int altitude;
[DataMember]
public int Altitude { get { return altitude; } set { altitude = value; }}
}
[DataContract]
public class City : Place
{
private int zipCode;
[DataMember]
public int ZipCode { get { return zipCode; } set { zipCode = value; }}
}
Le client envoie l'objet exemple suivant:
Person tom = new Friend();
tom.Name = "Tom";
Place office = new City();
office.Altitude = 500;
office.ZipCode = 900500;
tom.Location = office;
La question est pour une raison aucune des valeurs de place sont sérialisés.
Quelle erreur suis-je en train de faire?
Merci.
est l'altitude se sérialisé ou rien en ce qui concerne l'endroit du tout? ? – Jeff
Aucune propriété de Place n'est sérialisée lorsque le client soumet la personne – mob1lejunkie
Problèmes de couple: 1) Votre code client ne se compile pas: office.ZipCode n'est pas une affectation valide. 2) J'ai collé vos contrats de données dans VS2010, fait une fonction qui retourne une "Personne", et l'ai appelée en utilisant le conteneur de test WCF. Ça a marché. Donc, le problème est probablement avec le code qui n'est pas montré dans la question. – ErnieL