小数で動作することを除いて、IntegerAboveThresholdAttribute に似たものを実装しようとしています。
これは、BusinessException として使用する私の実装です。
[DecimalAboveThreshold(typeof(BusinessException), 10000m, ErrorMessage = "Dollar Value must be 10000 or lower.")]
ただし、属性は定数式、typeof 式、または属性パラメーター型の配列作成式である必要があるというエラーが表示されます。これを修正できるかどうか疑問に思っていましたが、そうでない場合、同様のことを行うことは可能ですか?
DecimalAboveThresholdAttribute のソース コードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoreLib.Messaging;
namespace (*removed*)
{
public class DecimalBelowThresholdAttribute : BusinessValidationAttribute
{
private decimal _Threshold;
public DecimalBelowThresholdAttribute(Type exceptionToThrow, decimal threshold)
: base(exceptionToThrow)
{
_Threshold = threshold;
}
protected override bool Validates(decimal value)
{
return (decimal)value < _Threshold;
}
}
}
また、DateTimes でもこれを行うことができるかどうかも知りたいです。