So habe ich eine benutzerdefinierte generische Modellbinder, die sowohl T und Nullable <T> behandeln.
Aber ich erstelle die Bindigs automatisch über Reflektion. Ich suche trhough die gesamte Appdomain für Aufzählung mit bestimmten Attribut markiert, und ich möchte binden theese Aufzählungen wie folgt aus:Wrap T in Nullable <T> über Reflexion
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
});
Aber hier ist der Haken. Ich kann die Nullable <T> nicht an CommandModelBinder binden.
Ich denke, die Laufzeit-Code-Generation, aber ich mache das nie, und vielleicht gibt es andere Optionen auf dem Markt. Irgendeine Idee, dies zu erreichen?
Danke,
Péter
Danke für die Antwort und den Tipp über die Filterung. Ich gehe davon aus, dass es sich so verhält, wie ich es codiert habe. Wenn es eine Einschränkung gibt oder wenn wir nicht die richtige Anzahl generischer Parameter übergeben, wird eine Ausnahme ausgelöst. –