Это хороший способ управления одноразовыми объектами в ASP.NET MVC? - PullRequest
0 голосов
/ 01 ноября 2010

Я переопределяю метод Controller.Dispose(bool) в моих контроллерах ASP.NET MVC2, чтобы распоряжаться вещами по мере необходимости, оставляя их живыми как можно дольше. Это в отличие от удаления их до возвращения из метода действия Контроллера.

Мой вопрос, короче; это работает, как я ожидаю?

Из того, что я вижу до сих пор, это, кажется, обеспечивает именно то, что мне нужно; все IDisposable объекты удаляются (метод Controller.Dispose() вызывает виртуальный Controller.Dispose(bool)), но только после того, как они больше не нужны.


РЕДАКТИРОВАТЬ # 2:

Я ценю совет о том, что я должен делать. Я имею в виду, что; На самом деле я проголосовал именно за такой ответ.

Однако для целей этого вопроса давайте предположим, что я оценил свои собственные потребности и решил, что вызов случайного свойства related-entity в моем View лучше всего подходит для me , и что Я решил, что мне не нужна среда внедрения зависимостей, чтобы убедиться, что мои объекты удаляются должным образом.

Что мне действительно нужно сейчас знать, так это то, что кто-то знает о проблемах, связанных с жизнью, при утилизации этих объектов переопределенным методом Controller.Dispose(bool).

Ответы [ 2 ]

5 голосов
/ 01 ноября 2010

Взгляните на инверсию управления и внедрение зависимостей.Фреймворки (Structure Map, Ninject, Autofac, Unity и т. Д.) Позаботятся об удалении объектов для вас в зависимости от области действия, назначенной этому объекту (например, область действия для каждого запроса будет удалять объекты в конце запроса).

4 голосов
/ 01 ноября 2010

+ 1 и спасибо за этот вопрос. Я не могу дать вам ответ, основываясь на своем собственном опыте, но я нашел этот пост Стивена Уолтера, точно описывающий вашу ситуацию (я считаю), и комментарий от @ Craig Stuntz предлагает тот же шаблон, который вы описали. Похоже, ты хорош здесь:)

...