Ich weiß, Sie sagten, Sie einen dynamischen Typ für Ihre JSON Deserialisierung verwendet haben, aber ich wollte nur darauf hinweisen, dass es da draußen eine .NET RESTful-Client ist, dass diese mit statischen Modelldefinitionen unterstützt auch. Für Sie oder für jeden, der auf diese Antwort reagiert, wenn Sie in C# -REST-Aufrufen nach einer Antwort auf ihre Probleme mit Punkten in Eigenschaftsnamen suchen.
Ab dem neu erschienenen RestSharp 106.1.0 (und ich diese Version bedeuten, weil diese Unterstützung gerade hinzugefügt wurde), kann damit umgehen Eigenschaften mit einem Punkt in ihrem Namen umbenennen über die DeserializeAs zuschreiben. Ein Beispiel ist, wenn ich die Elasticsearch API für einen _cat Aufruf mit dem folgenden Modell nennen:
public class CatResponse
{
public string index { get; set; }
...
[DeserializeAs(Name = "docs.count")]
public string docscount { get; set; }
}
Und tatsächlich bekommen jetzt die docs.count Eigenschaft deserialisiert in docscount zurück:
var resource = $"_cat/indices/{indexPattern}?format=json&pretty=true";
var request = new RestRequest(resource, Method.GET);
var response = client.Execute<List<CatResponse>>(request);
Diese Unterstützung ist out of the box und muss nicht die Newtonsoft.Json.JsonSerializer verwenden, die ich auch gehört habe, ist eine mögliche Lösung für dieses Problem, aber die ich nicht zur Arbeit bekommen konnte.
Können Sie stattdessen die DataContractJsonSerializer-Klasse verwenden? http://forums.asp.net/post/5030923.aspx –