ServiceStack版本:3.9.43
我正在使用内置的IoC容器和内置的FluentValidation。我使用对程序集的引用来注册我的验证器:
Plugins.Add(new ValidationFeature());
container.RegisterValidators(typeof(Foo).Assembly);
基于IoC docs我希望我的验证器只被实例化一次。不幸的是,看起来他们的生命周期是请求作用域,我得到了每个请求创建的新集,这很昂贵。
鉴于验证器为thread safe,RegisterValidators
行为的原因是什么?如果没有,那么将我的验证人注册为单身人士的推荐方法是什么。
答案 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上可用。