Ich benutze die JsonConvert.SerializeObject
in einem benutzerdefinierten ActionFilterAttribute
.
Innerhalb der OnActionExecuting
Serialisierung der filterContext.ActionParameters
für die Protokollierung Zweck.
Das Problem ist, dass einige der Aktionen Dateien empfangen (System.Web.HttpPostedFileWrapper
) über eine <from/>
mit enctype="multipart/form-data"
so bin ich den Fehler bekommenJsonConvert SerializeObject ignore files/stream/System.Web.HttpPostedFileWrapper
Timeouts nicht auf diesen Stream unterstützt.
Was ich tun möchte, ist diese Art von Objekt zu ignorieren, die nicht serialisieren kann und konnte durch Fehler.
Ich fand heraus, dass ich class
Properties
mit [JsonIgnore]
oder [ScriptIgnore]
Attribute ignorieren kann, aber ich bin auf der Suche nach einer allgemeineren Lösung, weil ich diese Attribute nicht überall platzieren möchte.
Ich habe auch versucht, die JsonSerializerSettings
Objekt zu recherchieren, aber nicht etwas relevantes zu meinem Fall gefunden.
Ok, netter Ansatz, müssen Sie Ihre Antwort beheben, obwohl dazu: '.Where (a => a.Value.GetType() = typeof ...', weil wir überprüfen müssen der "Wert" jedes Parameters der Aktion. (Das 'a' ist in diesem Fall immer ein '' Mitglied eines Wörterbuchs) –
@ Sag1v Ich wusste das nicht. Ich habe meinen Code nicht getestet. Ich war Ich gebe Ihnen einen Hinweis darauf, wie es geht, und vielen Dank für die Korrektur meines Fehlers –