Создание привязки зависимой модели в ASP.NET MVC3 - PullRequest
0 голосов
/ 02 февраля 2012

Приведенный ниже код пытается создать механизм связывания модели с учетом зависимостей. Связыватель модели должен создавать экземпляр объекта на основе объекта в запросе .Тем не менее, я не вижу логики в коде ниже, который только создает экземпляр объекта.Кроме того, я пытаюсь его отладить, метод CreateModel НЕ вызывается.

Creating a DI-Aware Model Binder


using System;
using System.Web.Mvc;
namespace MvcApp.Infrastructure {
public class DIModelBinder : DefaultModelBinder {
protected override object CreateModel(ControllerContext controllerContext,
ModelBindingContext bindingContext, Type modelType) {
return DependencyResolver.Current.GetService(modelType) ??
base.CreateModel(controllerContext, bindingContext, modelType);
}
}
}

Этот класс использует средство определения зависимостей в приложении для создания объектов модели и возвращается к базовому классу.реализация, если требуется (которая использует класс System.Activator для создания экземпляра модели с использованием конструктора по умолчанию).

Мы должны зарегистрировать наш связыватель в приложении как связыватель модели по умолчанию, что мы делаем в методе Appliction_StartGlobal.asax, как показано ниже.

Registering a Default Model Binder



 protected void Application_Start() {
    AreaRegistration.RegisterAllAreas();
    ModelBinders.Binders.DefaultBinder = new DIModelBinder();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
    }

1 Ответ

0 голосов
/ 04 февраля 2012

Поскольку я определил привязку пользовательской модели на основе атрибутов, которая имеет приоритет над DIModelBinder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...