Ich habe eine Rückruf-Webmethode, die Facebook anruft. Unglücklicherweise wird der Zweck des Aufrufs, der diese einzelne URL verwendet, ausschließlich durch die Struktur des Objekts (Json) bestimmt, das in dem Post-Body übergeben wird. Im Moment denke ich an:Gibt es eine effizientere Syntax für mehrere Versuche/Catch?
try { Class1 obj1 = JsonConvert.DeserializeObject<Class1>(rawData);
//code to run if data is of Class1 ...
}
catch
{ try { Class2 obj2 = JsonConvert.DeserializeObject<Class2>(rawData);
//code to run if data is of Class2 ...
}
catch
{ Class3 obj3 = JsonConvert.DeserializeObject<Class3>(rawData);
//code to run if data is of Class3...
}
}
Gibt es einen saubereren Weg als oben?
Wenn möglich, könnte es sinnvoll sein, unterschiedliche Endpunkte für jeden Status-Update-Typ zu konfigurieren. Alternativ speichert die Klasse alle möglichen Informationen und entscheidet dann, wie sie nach der Deserialisierung verarbeitet werden. – Rob
Gibt es eine Möglichkeit, aus den Rohdaten zu verstehen, welche Art von Klasse deserialisiert werden soll? Das Verwenden von Ausnahmen zum Steuern Ihres Codes sollte so weit wie möglich vermieden werden. – Steve
Haben Sie Beispiele für den JSON? vielleicht können Sie herausfinden, welcher Typ vor dem Aufruf von 'DeserializeObject' –
Nasreddine