Json.Net serialisieren/Deserialisieren der Klasse Name-Attribut C#
Sorry für die (vielleicht) triviale Frage, aber ich bin versucht zu konsumieren eines web service, wo die Entitäten und meine Daten-Modell-Klassen benannt sind anders.
Ich will, dass mein Modell .Net-Klasse und verwenden Sie eine Json-Attribut name auf Karte, serializer/deserializer, mit den entsprechenden web-service-Einheit.
Zum Beispiel:
Web-Service-Einheit:
"Menschen"
Meine Model-Klasse:
"Mitarbeiter"
Was hab ich schon zu tun:
[JsonObject(Title="People")]
public class Employee
{
[JsonProperty("DifferentPropertyName")]
string propertyName1 { get; set; }
}
Aber die json-serializer/Deserializer weiter zu verwenden .Netto Klasse name und ich brauche, um die jsonObject Titel.
Gibt es einen Weg, es zu erreichen?
BEARBEITEN
Ich arbeite an einer Xamarin Forms-Anwendung, mit Einfach.OData.Client zu konsumieren, einen OData-Service
Dank
Vielleicht kann das helfen:
[JsonProperty(Title="People")] public string propertyName1{get; set;}
Bitte zeigen Sie die Serialisierung/Deserialisierung-code, dass ist das falsche zu tun.
Danke... Das problem ist nicht mit den Eigenschaften, aber mit den Namen der Klasse. Da bin ich mit dem einfachen.odata.client nuget-Paket-ich bin versucht zu Deserialisieren einer Ressource entity, die mit dem Namen "Volk" in einem .net-Klasse (Modell) mit dem Namen "Mitarbeiter". An diesem Punkt ist die einfache.odata.client sucht einen service-Ressource (Person) mit der Bezeichnung "Mitarbeiter", die nicht gefunden werden kann.
Haben Sie versucht, serialisieren zu JSON-Strings, der erste dann zu Deserialisieren, die Zeichenfolge in Sie Employee-Klasse? Kann nicht gut sein für die Leistung, aber es ist ein workaround.
InformationsquelleAutor Richard | 2016-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Datacontractattribute aktivieren kann Ihre Lösung.
Wenn Sie serialisieren eines RichFilter Objekt, hier ist die Ausgabe :
DataContractAttribute
Sie muss geben Sie auch dieDataMemberAttribute
auf Eigenschaften, die Sie serialisieren möchten.Da war ich mit Einfach.OData.Klienten, die nicht in der Lage ist zu erkennen das DataContract-Attribut, ich musste den Namen von meinem remote-element explizit. Ich, jedenfalls, verwendet ein benutzerdefiniertes Attribut wie "ClassName" mit einer Eigenschaft liefert den Namen der Klasse, aber das ist zu viel Arbeit für seinen Zweck.
InformationsquelleAutor Thibault