В создаваемом примере веб-приложения существуют классы Модели, которые требуют различного подхода для создания метаданных. И если UserProfileModel использует атрибуты DataAnnotations и провайдера по умолчанию, то для PaymentModel его необходимо разработать.
Ядро ASP.NET MVC 3 предоставляет возможность указать только одного провайдера метаданных в качестве текущего. Устанавливать нужный экземпляр самостоятельно каждый раз при создании Модели не очень хороший подход. Возрастает вероятность допустить ошибку. Поэтому разработаем менеджера, который будет выбирать нужный вариант для каждого класса Модели.