Pregunta

Estoy intentando utilizar el validador DecimalMin de la biblioteca NHibernates validador. Desafortunadamente, debido a las restricciones del compilador que estoy recibiendo errores al intentar utilizarlo. Estoy seguro de que es algo simple, pero estoy en un punto donde tengo que pasar a otra tarea y no quemar más tiempo en él de modo sería apreciado ninguna ayuda.

    [DecimalMin(10.01)]
    public decimal Amount { get; set; }

El código anterior utiliza el atributo DecimalMin con el valor constructor de 10,01. El constructor del atributo acepta valores decimales. Sin embargo, el compilador no permitirá 10.01 o 10.01m.

Con 10.01 como el valor de recibo: "No se puede convertir tipo de fuente 'doble' de tipo de destino 'decimal'

Con 10.01m como el valor de recibo: "Un argumento atributo debe ser una expresión constante, el tipo de expresión o creación de la matriz de expresión de un tipo de parámetro de atributo."

He buscado en Google en torno a tratar de encontrar una respuesta y mi google-fu me está fallando en la actualidad.

¿Alguien tiene un ejemplo de cómo utilizar este validador?

¿Fue útil?

Solución

Esto es un error en NHibernate.Validator. Decimales no son representables en los parámetros de atributos.

uso de valores decimales como parametros de atributos en C #?

La solución es parchear NHibernate.Validator de modo que el constructor toma un flotador o doble y a continuación, realizar la conversión a decimal en el ctor. Deseo que tuviera una mejor respuesta para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top