그래서 나는 T와 Nullable을 모두 처리하는 사용자 지정 제네릭 모델 바인더가 있습니다 <T>.
하지만 리플렉션을 통해 자동으로 bindig를 만듭니다. 나는 특정 속성과 플래그 열거 형에 대한 전체 AppDomain을 trhough 검색 및 I는 다음과 같이 열거를 theese 바인딩 할 :Wrap T in 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에 바인딩 할 수 없습니다.
나는 런타임 코드 생성을 생각하고있다. 그러나 나는 이것을 결코하지 않으며 아마도 시장에 다른 옵션이있을 것이다. 이것을 달성하기위한 아이디어가 있습니까?
감사합니다,
페테르
대답에 대해 감사 드리며 필터링에 대해 알려주세요. 나는 그것이 코드화 된 것처럼 행동한다고 가정한다. 그러므로 제한적인 것이 있거나 generic 매개 변수의 정확한 숫자를 전달하지 않으면 예외를 던질 것이다. –