Frage

Ich bin versucht, die DecimalMin Validator von NHibernates Validator-Bibliothek zu verwenden. Leider wegen Compiler Einschränkungen Ich erhalte Fehler, wenn es zu nutzen versuchen. Ich bin sicher, es ist etwas einfach, aber ich bin an einem Punkt, wo ich auf eine andere Aufgabe bewegen müssen und brennen nicht mehr Zeit darauf so dass jede Hilfe würde geschätzt.

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

Der obige Code verwendet das DecimalMin Attribut mit dem Konstruktor Wert von 10,01. Der Konstruktor des Attributs akzeptiert Dezimalzahlen. Allerdings wird der Compiler nicht 10.01 oder 10.01m ermöglichen.

Mit 10,01 als Wert I erhalten: „Kann nicht Quelle Typ‚double‘auf Zieltyp‚Dezimal‘

konvertieren

Mit 10.01m als Wert I erhalten: „Ein Attribut Argument ein konstanter Ausdruck sein müssen, die Art der Expression oder Expression Array Schaffung eines Attributes Parameterart.“

Ich habe um googeln, um zu versuchen und eine Antwort und mein Google-Fu versagt mir heute zu finden.

Hat jemand ein Beispiel davon, wie diese Prüfung zu benutzen?

War es hilfreich?

Lösung

Das ist ein Fehler in NHibernate.Validator. Dezimalzahlen sind nicht darstellbare in Attribut-Parameter.

Verwendung Dezimalzahlen als Attribut params in c #?

Die Lösung ist NHibernate.Validator Patch, so dass der Konstrukteur einen Schwimmer oder Doppel nimmt und dann die Umwandlung in Dezimalzahlen in den Ctor zuführen. Wünschte, ich hatte eine bessere Antwort für Sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top