¿Cómo serializar un modelo con todos los atributos de validación de las propiedades individuales?

Context: crear un servicio jsonP con métodos de controlador mvc que proporciona una definición de campos de formulario que incluye todas las reglas de validación.

Mi problema es que no sé cómo serializar los atributos de validación. Prefiero los atributos de validación en el mismo formato que Razor serializa cuando se usa la validación discreta en vistas regulares de Mvc.

Para serializar a json, uso NewtonSoft.Json (4.0.2).

Ejemplo de modelo: perfil de clase pública

    [Required(ErrorMessage="This field is required.")]
    [StringLength(25, ErrorMessage="Max 25 chars.")]
    public string Firstname{get;set;}
    }

Ejemplo de javascript serializado preferido:

     {"Firstname": "John", 
      "ValidationRules":[{"data-val-required":"This field is required.", "data-val-length-max":25, "data-val-length":"Max 25 chars." }]}

Cualquier ayuda o punteros son muy apreciados.

Respuestas a la pregunta(2)

Su respuesta a la pregunta