我希望这不是一个重复或者可能有一个更简单的解决方案。重点:
在我的项目中,我创建了一个处理程序,我希望通过将其注入特定处理程序的方式一般地验证DB数据,让我们这样说:
public AddSomethingHandler(
IRepository<Something> repository,
IMappingService mappingService,
IRandomizeObjectService randomizeObjectService,
IHandlerValidation<Something> handlerValidation
)
: base(
repository,
mappingService,
randomizeObjectService,
handlerValidation)
{
}
如您所见,它被称为 IHandlerValidation 现在在 AddSthngHandler 正文中,我的目标是调用我的Validator
public SomethingDto Handle(AddSomethingAction action)
{
_handlerValidation.ValidateExistance(action.SomethingCode);
}
这就是诀窍,我想在 ValidateExistance 方法中注入字段名称 SomethingCode 及其值。
我为什么要这样做?
因为我想在我的处理程序之外提取验证逻辑,并以通用方式执行任何所需的操作以满足其他处理程序的需求。
帮助?
答案 0 :(得分:1)
您可以尝试这样的事情:
public SomethingDto Handle(AddSomethingAction action)
{
_handlerValidation.ValidateExistance(action.SomethingCode, nameof(AddSomethingAction.SomethingCode));
}
请注意,nameof
关键字仅适用于C#6.0。