NancyFx bindet ein Modell an einen dynamischen Typ?

8

Gibt es in Nancy eine Möglichkeit, den Inhalt einer POST-Anfrage an einen dynamischen Typ zu binden?

Zum Beispiel:.

%Vor%     
user326502 23.05.2013, 19:29
quelle

4 Antworten

9

Standardmäßig unterstützt Nancy keine dynamische Modellbindung. TheCodeJunkie hat einen schnellen ModelBinder geschrieben, um das zu erreichen.

Ссылка

Dann kannst du es so benutzen

dynamic model = this.Bind<DynamicDictionary>();

    
Phill 24.05.2013, 03:14
quelle
2

Wie die vorherigen Antworten zeigen, gibt es keine Unterstützung für die direkte Bindung an einen dynamischen Typ, am ähnlichsten ist der ModelBinder, der von TheCodeJunkie in Ссылка

Dieser Ansatz hat jedoch ein Problem, und das aus diesem Code resultierende DynamicDictionary wird später nicht richtig serialisiert, wobei nur die Schlüssel des Wörterbuchs erzeugt werden und die Werte verloren gehen. Dies wird hier beschrieben Warum? Speichern eines Nancy.DynamicDictionary in RavenDB speichern nur die Eigenschaftsnamen und nicht die Eigenschaftswerte? und ab heute (Version 1.4.3) ist immer noch passiert, diese Vorgehensweise ernsthaft einzuschränken.

Die Lösung besteht darin, einen einfachen Trick zu verwenden, auf die im POST empfangenen Rohdaten zuzugreifen und mit JSON.Net zu deserialisieren. In Ihrem Beispiel wäre es:

%Vor%

Beachten Sie, dass Sie Nancy.Extensions für den Request.Body.AsString () -Aufruf verwenden müssen.

    
maki 11.09.2016 15:24
quelle
0

Ich suchte nach einer Möglichkeit, meinen POST-Body als dynamisch zu deserialisieren und diese Frage zu finden. Ich werde meine Lösung mit Newtonsoft und der Extension-Methode einfügen, falls das Ergebnis für jemand anderen nützlich sein sollte.

Erweiterungsmethode

%Vor%

Verwendung

%Vor%     
AldoRomo88 19.10.2017 21:30
quelle
-1

Ich bin mir nicht sicher, aber Sie können es versuchen:

%Vor%

lassen Sie mich wissen, ob funktioniert:)

    
Luiz Freneda 23.05.2013 23:22
quelle

Tags und Links