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 相反。所以这里又多出一条路了。