Blog

Behebung von JSON-Serialisierungsproblemen bei der Verwendung eines VSTS / TFS Service Hook

Jasper Gilhuis

Aktualisiert Oktober 22, 2025
2 Minuten

Als ich heute an einem Integrationsprojekt arbeitete, entdeckte ich ein unerwünschtes Verhalten bei der Verwendung eines Service Hook, wenn ich versuchte, ein geändertes Work Item zu erfassen. Ich verwendete die folgende Strategie (siehe diesen hervorragenden Blogbeitrag von René van Osnabrugge), um JSON-Klassen für eine generierte Anfrage zu erstellen. Bei der Fehlersuche in meiner Lösung stellte ich fest, dass nicht alle Eigenschaften Werte enthielten. Woran könnte das liegen?

Einrichten des Szenarios

Mit der zuvor erwähnten Strategie habe ich einige C#-Klassen für das JSON aus dem Service Hook erstellt. Ich verwende diese Klassen in meiner Methode zur Erfassung des Service Hook. Durch die Angabe des "TFSHook.RootObject" wird das JSON automatisch in die Klassen umgewandelt.

Methode Definition

Die Suche nach dem Problem...

Ich habe erwartet, dass alle Klassen automatisch mit den Werten aus dem empfangenen JSON-Stream gefüllt werden. Leider waren einige der Klassen leer.

Leere Immobilien

Als erstes habe ich überprüft, ob das JSON tatsächlich die Werte enthält. Sobald die Anfrage umgewandelt wurde, ist es nicht ganz einfach, das ursprüngliche JSON zu erhalten. Glücklicherweise verfügt die Seite Service Hooks über eine hervorragende Verlaufsansicht, in der Sie alles finden, was Sie brauchen.

Servicehaken Anfrage Details

Mit den zusätzlichen Augen von Mark Dekker entdeckten wir schnell, dass einige der Eigenschaften ein "." in ihrem Namen hatten, während die generierten JSON-Klassen KEIN "." in ihrem Namen hatten.

Die Lösung

Nennen Sie es einen Fehler oder ein Feature, die Lösung ist alles, was jetzt zählt. In den generierten Klassen können wir die Eigenschaften ganz einfach mit einem JSON-Attribut schmücken, mit dem wir den Eigenschaftsnamen angeben können, nach dem im JSON-Stream gesucht werden soll.

Code-Schnipsel

Voilà! Wenn Sie dies ausführen, erhalten Sie Objekte, die die tatsächlichen Werte enthalten.

Bonusmaterial: Mehr Erfahrung bei der Fehlersuche

Wenn Sie beim Debuggen Ihres Service Hook einige Codeänderungen vornehmen und dann erneut debuggen, kann dies zu einem unerwarteten Verhalten führen, da Ihr vorheriger Haltepunkt möglicherweise nicht erreicht wird. Meiner Erfahrung nach wird der Service Hook auf "Aktiviert (eingeschränkt)" gesetzt, wenn in Ihrem Code etwas schief läuft oder eine Zeitüberschreitung auftritt .

Aktiviert Eingeschränkter Service-Haken

Dies lässt sich leicht beheben, indem Sie im Kontextmenü "Aktivieren" wählen.

Aktivieren Sie einen Haken für eingeschränkte Dienste

Wenn Sie einen Service-Haken entwickeln, sollten Sie unbedingt die Seite Service-Haken zur Hand haben. Dieser Beitrag beweist, wie nützlich sie sein kann!


Verfasst von

Jasper Gilhuis

Contact

Let’s discuss how we can support your journey.