ServiceStack版本: 3.9.43
我使用内置的IoC容器和内置的FluentValidation。我使用对程序集的引用来注册我的验证器:
Plugins.Add(new ValidationFeature());
container.RegisterValidators(typeof(Foo).Assembly);基于IoC docs,我希望我的验证器只实例化一次。不幸的是,它们的生命周期看起来是请求作用域的,我会为每个请求创建一个新的集合,这是很昂贵的。
既然验证器是thread safe,那么RegisterValidators这样做有什么原因吗?如果不是,那么将我的验证器注册为单例的推荐方式是什么?
发布于 2013-06-18 03:59:26
我刚刚向允许specify the scope of which the FluentValidation validators are registered in的RegisterValidators提交了一个重载。现在可以使用以下命令指定单例作用域:
container.RegisterValidators(ReuseScope.Hierarchy, typeof(Foo).Assembly);注意:只有当你的验证器不使用可任意使用的资源,例如数据库、数据存储/网络连接时,你才需要这样做。
在下一版本的ServiceStack v3.9.53+中的NuGet上提供。
https://stackoverflow.com/questions/17155227
复制相似问题