FluentValidation注册

时间:2013-06-17 19:25:41

标签: servicestack fluentvalidation

ServiceStack版本:3.9.43

我正在使用内置的IoC容器和内置的FluentValidation。我使用对程序集的引用来注册我的验证器:

Plugins.Add(new ValidationFeature());
container.RegisterValidators(typeof(Foo).Assembly);

基于IoC docs我希望我的验证器只被实例化一次。不幸的是,看起来他们的生命周期是请求作用域,我得到了每个请求创建的新集,这很昂贵。

鉴于验证器为thread safeRegisterValidators行为的原因是什么?如果没有,那么将我的验证人注册为单身人士的推荐方法是什么。

1 个答案:

答案 0 :(得分:1)

我刚刚为RegisterValidators提交了一个重载,允许你specify the scope of which the FluentValidation validators are registered in。您现在可以使用以下命令指定单例范围:

container.RegisterValidators(ReuseScope.Hierarchy, typeof(Foo).Assembly);

注意:如果您的验证人员没有使用一次性资源,您只需要这样做,例如: db,数据存储/网络连接。

在下一版ServiceStack v3.9.53 +中的NuGet上可用。