Obtener atributos de anotaciones de datos del modelo

Quiero crear un validador del lado del cliente personalizado, pero quiero definir reglas de validación a través de los atributos de anotaciones de datos en la capa de lógica de negocios. ¿Cómo puedo acceder a los atributos de validación del modelo en tiempo de ejecución?

Quiero escribir 'generador', que convertirá este código:

public class LoginModel
{
    [Required]
    [MinLength(3)]
    public string UserName { get; set; }

    [Required]
    public string Password { get; set; }
}

en este:

var loginViewModel= {
    UserName: ko.observable().extend({ minLength: 3, required: true }),
    Password: ko.observable().extend({ required: true })
};

Pero no de fuentes .cs, por supuesto. =)

Tal vez la reflexión?

UPD

He encontrado este método:MSDN. Pero no puedo entender cómo usarlo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta