我刚刚将大量代码重构AccountController
为Authentication
提供程序类。用于执行此检查的控制器:
if (_memberRepository.GetByUserName(model.UserName) != null)
{
ModelState.AddModelError("", "The user name you have chosen already exists. Please choose another.");
return View(model);
}
我已将此移至我的Authentication
班级,但我无法访问ModelState
.
if (_memberRepository.GetByUserName(newMember.LoginName) != null)
{
// Panic stations!!
}
我是不是该:
a) 返回一个描述新方法状态或结果的类?我觉得这太复杂了。b) 抛出一个异常(可能是 ArgumentException?),表明我反对注册重复的用户名?这既快速又简单,但它接近于对业务逻辑使用异常
我看到已经有一个MembershipCreateUserException
,但我喜欢避免使用内置的会员功能。这不是很好的 OO,我觉得使用它很脏。