Hinzufügen benutzerdefinierter ValueProviderFactories zu ASP.NET MVC3?

8

Ich habe versucht, eine MVM3-Instanz mit einer Protobuf ValueProviderFactory zu erstellen, um den MIME-Typ auszuwählen und die Rohdaten in Objekte für Aktionsparameter zu deserialisieren. Ich könnte das auch verwenden, um den Standard-JSON-Serializer zu ändern.

Wenn man JsonValueProviderFactory.cs betrachtet, sollte das nicht allzu schwierig sein, aber die Fabriken scheinen alle hart codiert zu sein.

Für Protobuf kann ich vielleicht etwas mit einem IValueProvider machen, aber ich habe noch nicht einmal überprüft, was MVC3 macht, wenn es einen MIME-Typ von application/x-protobuf erhält.

Gehe ich das richtig?

AKTUALISIEREN

Ich habe diesen Blogpost gefunden, in dem es darum geht, ein IValueProvider zu erstellen. Es wird dann unten erwähnt, dass sich dies um MCV2 herum geändert hat. Er änderte es in ein ValueProviderFactory und ruft:

%Vor%

Aber in MVC3 ist diese Eigenschaft schreibgeschützt.

    
Tim 30.07.2011, 19:32
quelle

1 Antwort

2

Es stellt sich heraus, dass es nicht schreibgeschützt ist und Sie Provider wie folgt hinzufügen können:

%Vor%

Ich hätte das gewusst, hätte ich mich selbst überprüft!

Ich habe heute ein wenig mehr gesucht und dies Blogpost scheint darauf hinzuweisen, dass DependencyResolver alle Klassen findet, die ValueProviderFactory erben. Ich benutze MEF für die Auflösung von Abhängigkeiten, sodass ich einfach ein Export-Attribut hinzufügen kann und es wird automatisch ausgewählt.

Ich habe jetzt ein weiteres Problem , das eine benutzerdefinierte ValueProviderFactory für schreibt protobuf-net.

    
Tim 01.08.2011, 18:50
quelle