альтернатива профайлу провайдера в asp.net mvc - PullRequest
0 голосов
/ 26 января 2011

Я разрабатываю сайт ASP.NET MVC, который на самом деле использует пользовательский profileProvider для извлечения информации (например, о последней просмотренной странице, максимальном количестве записей для просмотра в сетке, уведомлениях по почте и т. Д.), Относящихся к одному пользователю, сохраненному в настраиваемая база данных. Мне не нравится этот метод, потому что profileProvider нелегко вводить, есть ли альтернативный способ получить те же функциональные возможности, которые предоставляет провайдер профиля? Я думаю, что возможно использовать модуль asp.net, но я не эксперт.

Ответы [ 2 ]

1 голос
/ 13 февраля 2011

Я думаю, что tartafe означает, что провайдеры (также ваш пользовательский ProfileProvider) создаются и контролируются внешним кодом (System.Web.Configuration.ProvidersHelper).

Шаблон внедрения зависимостей говорит, что любые объекты вашего пользовательского провайдераполагается, должен быть передан контроллером (или контейнером).ЧФР. Внедрение зависимостей для слабой связи ).Обычно ваш контроллер инициализирует хранилище, текстовый текст или другой объект и передает его через конструктор или свойство.Но это невозможно с пользовательским провайдером, поскольку его «контроллер» запечатан в System.Web.Configuration.

Я думаю, что возникает вопрос: есть ли способ повлиять на то, как ProvidersHelper создает и контролирует наших пользовательских провайдеров?

0 голосов
/ 01 февраля 2011

Что именно вы подразумеваете под нелегким инъекционным введением?

Если вы просто хотите сказать, что вы не хотите, чтобы это было в вашем контроллере, то создайте фильтр действий, который добавляет модель информации о пользователе, необходимую для просмотра данных.

Если вы имеете в виду, что вам не нужна зависимость System.Web от того, что вы используете информацию профиля, то создайте интерфейс адаптера, например IProfileService, и внедрите его с помощью оболочки поставщика профилей.

Если вы не имеете в виду ни одну из двух вещей, о которых я догадался, попробуйте объяснить, потому что язык немного неясен.

...