MvcOptions.MaxModelBindingRecursionDepth プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
モデル バインド システムの最大再帰深度を取得または設定します。 このDefaultModelBindingContext数IModelBinderを超える s がスタック上にある場合、 は をスローInvalidOperationExceptionします。 つまり、このレベルを超えて再帰しようとすると失敗します。
public:
property int MaxModelBindingRecursionDepth { int get(); void set(int value); };
public int MaxModelBindingRecursionDepth { get; set; }
member this.MaxModelBindingRecursionDepth : int with get, set
Public Property MaxModelBindingRecursionDepth As Integer
プロパティ値
既定値は で、 32
既定値と一致します MaxValidationDepth 。
注釈
一部の自己参照モデルでは、一部のバインダーが無条件に成功し、モデル バインドによってスタック オーバーフローが発生する可能性があります。 この制限は、このような無制限の再帰を制限します。これは、不適切なモデル バインダーとモデルに対するセーフガードです。 この制限により、自己参照がない非常に深いモデル型階層からも保護されます。
この制限では、バインドされたモデルは 修正 されません。 代わりに、 は InvalidOperationException 、モデル内の問題を開発者に通知します。 開発者はその問題を修正する必要があります。
このオプション (int.MaxValue
たとえば) の値が非常に大きいと、実質的に制限が削除され、推奨されません。