(Kopieren über die Antwort von Andrew Davis, vom DocumentDB MSDN forums, für die Stackoverflow-Community)
Der einfachste Weg, um Ihre Mitarbeiter-Klasse erben von Dokument zu haben wäre, und warf dann result.Resource an Mitarbeiter. Wenn Sie nicht von Dokument erben möchten, können Sie auch eine explizite Umwandlung zwischen Dokument und Mitarbeiter definieren.
Wenn die Employee-Klasse von Document geerbt wird, sollte sie out-of-the-box funktionieren, wenn die Namen der Member Ihrer Employee-Klasse den Namen der entsprechenden Eigenschaften der JSON-Repräsentation entsprechen.
Ihre eigene Art Konvertierung definieren gibt Ihnen mehr Kontrolle und könnte wie folgt aussehen:
public static explicit operator Employee(Document doc)
{
Employee emp = new Employee();
emp.Name = doc.GetPropertyValue<string>("employeeName");
emp.Number = doc.GetPropertyValue<int>("employeeNumber");
/* and so on, for all the properties of Employee */
return emp;
}
Dies würde eine explizite Umwandlung von Dokument Mitarbeiter definieren. Sie müssen sicherstellen, dass die GetPropertyValue-Zeichenfolgen (und Argumente eingeben) mit Ihren JSON-Eigenschaften übereinstimmen.
Jep! Er hat meine Frage dort beantwortet. Ich weiß es zu schätzen, dass Sie die Antwort auch auf dieses Forum gebracht haben. – Sam
Dies funktioniert möglicherweise beim Aufruf von CreateDocumentAsync, da Sie bereits eine Employee-Instanz erstellt haben. Wenn Sie jedoch auch ReadDocumentAsync aufrufen können, um 1 Objekt zurückzugeben, können Sie _that_ nicht an Mitarbeiter zurückgeben. Dazu müssen Sie wie Arnabs Antwort dynamisch umwandeln oder das zurückgegebene Ressourcendokument serialisieren. – Andy