C# NHibernate小数校验器

C# NHibernate小数校验器,c#,.net,nhibernate,nhibernate-validator,C#,.net,Nhibernate,Nhibernate Validator,我正在尝试使用NHibernates验证程序库中的小数验证程序。不幸的是,由于编译器的限制,我在尝试使用它时出错。我相信这很简单,但我现在需要转移到另一个任务上,不要再浪费时间了,所以任何帮助都将不胜感激 [DecimalMin(10.01)] public decimal Amount { get; set; } 上面的代码使用构造函数值为10.01的DecimalMin属性。属性的构造函数接受十进制值。但是,编译器不允许使用10.01或10.01m 以10.01作为我收到的

我正在尝试使用NHibernates验证程序库中的小数验证程序。不幸的是,由于编译器的限制,我在尝试使用它时出错。我相信这很简单,但我现在需要转移到另一个任务上,不要再浪费时间了,所以任何帮助都将不胜感激

    [DecimalMin(10.01)]
    public decimal Amount { get; set; }
上面的代码使用构造函数值为10.01的DecimalMin属性。属性的构造函数接受十进制值。但是,编译器不允许使用10.01或10.01m

以10.01作为我收到的值:“无法将源类型“double”转换为目标类型“decimal”

我收到的值为10.01m:“属性参数必须是常量表达式、表达式类型或属性参数类型的数组创建表达式。”

我在谷歌上四处搜索,试图找到答案,但我的谷歌fu今天让我失望了


有人举过如何使用这个验证器的例子吗?

这是NHibernate.validator中的一个错误。小数不能在属性参数中表示


解决方案是修补NHibernate.Validator,以便构造函数采用浮点或双精度,然后在ctor中执行到十进制的转换。希望我能为您提供更好的答案。

James-谢谢!非常感谢。我想我必须自己编写,完全按照您的建议执行。我只是想再次检查我是否正确别发疯了。再次感谢!向NHibernate团队提交了一个错误和补丁: