Система. Сеть. Абстракции: для чего это хорошо?

Наконец, решил эту проблему, используя обычную HTML-форму и добавив следующее в rout.rb

get '/rooms/save_details/:id/:name/:desc' => 'rooms#save_details', :as => 'save_details'

resources :rooms do
    get 'save_details', on: :collection
end
26
задан Seb Nilsson 7 April 2009 в 12:45
поделиться

2 ответа

Пространство имен содержит типы, которые разработаны для обертывания базовых классов ASP.NET (таких как HttpSessionState).

Что, Вы хотите знать почему?

Многие из этих базовых классов ASP.NET изолируются или статичны, лишая возможности повреждать зависимости между ними и Вашим кодом. ЭТО означает, что Вы не можете дразнить эти базовые зависимости, делая его намного тяжелее для тестирования кода ASP.NET. Так, вместо того, чтобы непосредственно управлять HttpResponse непосредственно в коде, Вы управляете им через HttpResponseWrapper, который в течение тестового времени можно заблокировать или дразнить, чтобы управлять, как объект HttpResponse ведет себя.

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

36
ответ дан 28 November 2019 в 07:00
поделиться

Это действительно для насмешки. - HttpContext является запечатанным классом и не может (легко) дразниться. HttpContextBase не изолируется, и я полагаю, что это - методы, являются виртуальными, делая насмешку намного легче.

В то время как Вы не можете новый экземпляр HttpContextBase (скажите для использования в WebForms), можно получить экземпляр через:

var ctx = new HttpContextWrapper(HttpContext.Current);
17
ответ дан Troy 28 November 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: