Carpeta modelo ASP.NET MVC para tipo genérico

¿Es posible crear un archivador modelo para un tipo genérico? Por ejemplo, si tengo un tipo

public class MyType 

¿Hay alguna manera de crear un archivador de modelo personalizado que funcione para cualquier tipo de MyType?

Gracias, Nathan

Cree un encuadernador, anule BindModel, verifique el tipo y haga lo que necesita hacer

 public class MyModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { if (HasGenericTypeBase(bindingContext.ModelType, typeof(MyType<>)) { // do your thing } return base.BindModel(controllerContext, bindingContext); } } 

Establezca su carpeta de modelo a la predeterminada en global.asax

 protected void Application_Start() { // Model Binder for My Type ModelBinders.Binders.DefaultBinder = new MyModelBinder(); } 

verifica la base genérica correspondiente

  private bool HasGenericTypeBase(Type type, Type genericType) { while (type != typeof(object)) { if (type.IsGenericType && type.GetGenericTypeDefinition() == genericType) return true; type = type.BaseType; } return false; }