ABP 使用 IShouldNormalize 完成缺省值初始化

在 ABP 中有一个 IShouldNormalize 接口,内部只有一个方法 Normalize。主要场景用于 Dto

namespace Abp.Runtime.Validation
{
    //
    // 摘要:
    //     This interface is used to normalize inputs before method execution.
    //     此接口用于在方法执行之前对输入进行规范化。
    public interface IShouldNormalize
    {
        //
        // 摘要:
        //     This method is called lastly before method execution (after validation if exists).
        //     此方法最后在方法执行之前调用(验证存在则在之后调用)。
        void Normalize();
    }
}

凡是继承了该接口的类,必须实现 Normalize 方法,然后结合实际场景在方法内处理相关逻辑。我们就可以在该方法中实现一些参数的初始化了。

比如 ABP 中用得最多的场景 Sorting,在列头排序字段为空的时候,使用默认排序就是这样实现的。

 

另外这里顺便把 IShouldNormalize 的大哥 constructor 介绍下。constructor 是初始化的时候被调用,正好与 IShouldNormalize 相反。所以这里又多出一条路了。

posted @ 2019-04-25 19:59  Jöhan  阅读(257)  评论(0编辑  收藏  举报