2011-07-30 17 views
8

Estaba buscando probar y agregar un Protobuf ValueProviderFactory a MVC3 para poder seleccionar el tipo MIME y deserializar los datos brutos en objetos para los parámetros de acción. También podría usar esto para cambiar el serializador Json predeterminado.¿Agregar ValueProviderFactories personalizados a ASP.NET MVC3?

En cuanto a JsonValueProviderFactory.cs esto no debería ser demasiado difícil, pero todas las fábricas parecen estar codificadas.

Para Protobuf Puedo hacer algo con un IValueProvider pero aún no he comprobado qué hace MVC3 cuando recibe un tipo MIME de application/x-protobuf.

¿Voy por esto de la manera correcta?

ACTUALIZACIÓN

encontré this blog que habla de la creación de un IValueProvider. Luego menciona en la parte inferior que esto cambió alrededor de MCV2. Lo cambió a un ValueProviderFactory y llama:

ValueProviderFactories.Factories.Add(new HttpCookieValueProviderFactory()); 

Pero en MVC3 esta propiedad es de sólo lectura.

+1

Interesante. No sé qué hace MVC aquí, así que seguiré esta pregunta con curiosidad. –

Respuesta

2

Resulta que no es de sólo lectura y se puede agregar proveedores de la siguiente manera:

ValueProviderFactories.Factories.Add(new MyValueProviderFactory()); 

me hubiera saber esto tuvo he comprobado yo mismo!

He hecho algunas búsquedas más hoy, y la publicación del blog this parece sugerir que el DependencyResolver encontrará cualquier clase que herede ValueProviderFactory. Estoy usando MEF para la resolución de la dependencia, así que puedo agregar un atributo Exportar y se seleccionará automáticamente.

Ahora tengo further issue escribiendo una ValueProviderFactory personalizada para protobuf-net.

+0

También puede eliminar proveedores de valor si desea hacer algo como cambiar el proveedor de valor json predeterminado por uno personalizado. – evanmcdonnal

Cuestiones relacionadas