0

FluentValidation 3.0.0.1を使用するコードをいくつか継承しましたが、.NET4.5がインストールされているマシンで恐ろしいSystem.Security.VerificationException : Operation could destabilize the runtimeエラーが発生します。この投稿を読んだ後:http : //elegantcode.com/2012/08/23/net-4-5-operation-could-destabilize-the-runtime-yikes/FluentValidationおよびFluentValidation.MVC3nugetパッケージを最新バージョン3.4に更新しました.6.0。

しかし...更新後、このコードはコンパイルされません:

rules.RuleFor(x => x.Number).DisplayName("Bla bla bla"); // <-- No DisplayName method

using FluentValidation.Mvc.MetadataExtensionsリレーオンし、この名前空間が3.4.6.0でインストールされたDLLに存在しないため、失敗します

MetadataExtensions最新のFVに同等のものはありますか?そうでない場合、、、および同様のメソッドを最新の3.4.6.0で機能するものに置き換えるDisplayNameにはどうすればよいですか?ScaffoldHiddenInput

(私はFluentValidationにまったく慣れていません-VerificationExceptionのために偶然見つけました)

4

2 に答える 2

0

最新バージョンのインストールはオプションではありませんでしたが、3.0.0.1ソースをダウンロードし、AbstractValidatorクラスに変更を適用しました。

// Func<CascadeMode> cascadeMode = () => ValidatorOptions.CascadeMode; // Deleted
static Func<CascadeMode> s_cascadeMode = () => ValidatorOptions.CascadeMode; // Added
Func<CascadeMode> cascadeMode = s_cascadeMode; // Added

オリジナルの3.0.0.1をパッチを適用したバージョンに置き換えた後、アプリケーションは。なしで起動しVerificationExceptionます。

于 2013-01-14T10:48:49.490 に答える
0

FluentValidationの新しいバージョンを使用しているため、以下のように表示する代わりにWithMessageを使用する必要があります

 RuleFor(x => x.city).NotNull().WithMessage("City is required"); 
于 2013-01-09T11:31:04.817 に答える