Domanda

Sto cercando di utilizzare il validatore DecimalMin dalla libreria NHibernates Validator. Purtroppo, a causa delle restrizioni del compilatore sto ottenendo gli errori quando si tenta di utilizzarlo. Sono sicuro che la sua qualcosa di semplice, ma io sono a un punto in cui ho bisogno di passare ad un altro compito e non bruciare più tempo su di esso in modo che qualsiasi aiuto sarebbe apprezzato.

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

Il codice precedente utilizza l'attributo DecimalMin con il valore costruttore 10,01. Il costruttore del attributo accetta valori decimali. Tuttavia, il compilatore non permetterà 10.01 o 10.01m.

Con 10.01 come valore ricevo: "Impossibile convertire il tipo di sorgente 'doppio' per tipo di destinazione 'decimale'

Con 10.01m come valore ricevo: "Un argomento attributo deve essere un'espressione costante, tipo di espressione o creazione matrice espressione di un tipo di parametro di attributo."

Googled intorno per cercare di trovare una risposta e il mio google-fu mi sta venendo a mancare oggi.

Qualcuno ha un esempio di come usare questo validatore?

È stato utile?

Soluzione

Questo è un bug nel NHibernate.Validator. I decimali non sono rappresentabili nei parametri degli attributi.

di numeri decimali utilizzare come params attributi in C #?

La soluzione è di patch NHibernate.Validator modo che il costruttore prende un float o doppia e quindi eseguire la conversione decimale nel ctor. Vorrei avere una risposta migliore per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top