我有一个验证类实现了IDataErrorInfo,它具有您必须实现的所有方法。我如何重构此验证?
一个是
public string this[string columnName]
{
get
{
}
}
return "";
现在,在这个switch语句我有我的一些形式的验证。
现在我注意到我的很多表单都需要完全相同的验证内容。
所以现在当我需要添加更多验证时,我会创建一个实现“IDataErrorInfo”的新类,添加额外的阈值。
然后在视图中我做这样的事
CoreValidation coreReg = new CoreValidation();
try
{
UpdateModel(coreReg, regForm.ToValueProvider());
}
catch
{
return View();
}
MoreValidation moreReg = new MoreValidation();
try
{
UpdateModel(moreReg , regForm.ToValueProvider());
}
catch
{
return View();
}
我只是不喜欢这个事实,我需要有2个可能继续增长不同的尝试catch语句。如果我需要说采取“核心”和“更多”,并添加一些更多的验证,不能进入任何一个这些我正在看另一个尝试赶上。
我试图去“CoreValidation”类,并提取switch语句和属性,并把它放在一个新的类。
然后我的计划是用swtich语句调用该类和方法。因此,在“更多”验证类我会在这个
public string this[string columnName]
{
get
{
CoreValidtion(columnName); // this would contain the switch statement
//add another switch here with extra validation.
}
}
return "";
那我就只有一个尝试捕捉,我不会重复任何代码,因为一切都将调用相同的方法(CoreValidation)。
但updateModel似乎无法弄清楚这一点。当UpdateModel尝试设置无论它需要设置它无法找到属性方法,因此所有属性如
“用户名”都设置为空。
那么我该怎么做我想做的事?
感谢