如何同时将字段名称及其值注入方法?

时间:2018-02-15 08:55:55

标签: c# .net

我希望这不是一个重复或者可能有一个更简单的解决方案。重点:
在我的项目中,我创建了一个处理程序,我希望通过将其注入特定处理程序的方式一般地验证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 及其值。
我为什么要这样做? 因为我想在我的处理程序之外提取验证逻辑,并以通用方式执行任何所需的操作以满足其他处理程序的需求。

帮助?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

public SomethingDto Handle(AddSomethingAction action)
{
    _handlerValidation.ValidateExistance(action.SomethingCode, nameof(AddSomethingAction.SomethingCode));
}

请注意,nameof关键字仅适用于C#6.0。