我正在使用FluentValidation 3.4.6,我的项目的目标框架是.net 4.我已经彻底检查了我的解决方案,以确保没有引用旧版本的FluentValidation。
我相信这个版本的FluentValidation可以解决.NET 4.5中引入的反射错误,但是我仍然会收到VerificationException,如此处所述http://elegantcode.com/2012/08/23/net-4-5-operation-could-destabilize-the-runtime-yikes/
此时抛出VerificationException:
MyValidator : AbstractValidator<MyObj>
ctor {
RuleFor(x => x.SomeProperty).Equal(true);
}
at FluentValidation.Resources.LocalizedStringSource.CreateFromExpression(Expression`1 expression, IResourceAccessorBuilder resourceProviderSelectionStrategy) in c:\projects\FluentValidation\src\FluentValidation\Resources\LocalizedStringSource.cs:line 66
at FluentValidation.Validators.PropertyValidator..ctor(Expression`1 errorMessageResourceSelector) in c:\projects\FluentValidation\src\FluentValidation\Validators\PropertyValidator.cs:line 46
at FluentValidation.Validators.EqualValidator..ctor(Object valueToCompare, IEqualityComparer comparer) in c:\projects\FluentValidation\src\FluentValidation\Validators\EqualValidator.cs:line 37
at FluentValidation.DefaultValidatorExtensions.Equal[T,TProperty](IRuleBuilder`2 ruleBuilder, TProperty toCompare, IEqualityComparer comparer) in c:\projects\FluentValidation\src\FluentValidation\DefaultValidatorExtensions.cs:line 143
at MyValidator..ctor() in MyValidator.cs:line 22
答案 0 :(得分:2)
我将Intellitrace设置为“仅限IntelliTrace事件”,这在VS2010中为我阻止了这个问题。
答案 1 :(得分:1)
我能够在调试器外部运行并最终将其缩小到intell-trace。如果在3.4.6中遇到此问题,请禁用智能跟踪。
答案 2 :(得分:0)
我似乎也通过将FluentValidation*
添加到intellitrace设置中的排除模块列表(同时保留事件和呼叫信息)来解决这个问题。这是使用FV.NET版本3.4.6。