したがって、T と Nullable<T> の両方を処理するカスタム ジェネリック モデル バインダーがあります。
しかし、リフレクションを介してバインディングを自動的に作成します。特定の属性でフラグが立てられた列挙をアプリドメイン全体で検索し、これらの列挙を次のようにバインドしたいと考えています。
AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(asm => asm.GetTypes())
.Where(
t =>
t.IsEnum &&
t.IsDefined(commandAttributeType, true) &&
!ModelBinders.Binders.ContainsKey(t))
.ToList()
.ForEach(t =>
{
ModelBinders.Binders.Add(t, new CommandModelBinder(t));
//the nullable version should go here
});
しかし、ここに問題があります。Nullable<T> を CommandModelBinder にバインドできません。
ランタイム コードの生成を考えていますが、これを行うことはありません。市場には他のオプションがあるかもしれません。これを達成するためのアイデアはありますか?
ありがとう、
ピーター