余暇には、学校のプロジェクトで再利用できるスモール ビジネス フレームワークを作成しています。それがあなたにアイデアを与えることができれば、それは馬鹿げたCSLAに似ていると思います.
ただし、ビジネスルールクラスには少し問題があります。現在の外観は次のとおりです。
public class Rule
{
public string PropertyName { get; }
public string Description { get; }
public Func<object, bool> ValidationRule { get; }
public Rule(string propertyName, string message, Func<object, bool> validationRule)
{
this.PropertyName = propertyName;
this.Description = description;
this.ValidationRule = validationRule;
}
public bool IsBroken(object value)
{
return ValidationRule(value);
}
}
私は、ルールが破られているかどうかを確認するときに行っているボックス化およびボックス化解除の大ファンではありません (値は任意の型である可能性があります)。
もちろん、クラス全体をジェネリックにして、IsBroken 関数に T 型のオブジェクトを持たせることもできます (おそらくオブジェクトを使用するよりも良い考えです)。
public class Rule
{
public Func<T, bool> ValidationRule { get; }
public bool IsBroken<T>(T value)
{
return ValidationRule(value);
}
}
ジェネリック型でクラスを宣言せずに?
その他のヒントは大歓迎です。