私は最近、ここStack Overflow で、Web API ベータ版でのモデル バインディングの適切な拡張ポイントを見つけることについて質問しました。カスタム プロバイダーを使用するIModelBinder
と、モデル バインディングと値プロバイダーへのアクセスを完全に制御できます。
しかし、それは本当にコントロールしすぎです。いくつかの値がどのようにマップされるかを制御したいだけで、それ以外の場合は問題なく機能するモデル バインディングを手作業でコーディングしたくありません。
最終的に、これは私ができるようにしたいことです:
public class MyCustomModelBinder : IModelBinder
{
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
// Invoke default model binding
// Pull out custom values
var value1 = bindingContext.ValueProvider.GetValue("value1");
var value2 = bindingContext.ValueProvider.GetValue("value2");
bindingContext.Model.Value1 = DoCustomStuff(value1);
bindingContext.Model.Value2 = DoCustomStuff(value2);
return true;
}
... // Define DoCustomStuff
}
WebAPI の既定のプロバイダーを把握するのはかなり難しいようです。 アクセス可能かどうか、カスタム モデル バインダーでここにアクセスする方法を知っている人はいますか?