Ну, это что-то вроде инъекции зависимости, которая позволяет людям говорить: «Вот среда, в которой вы будете работать». Как правило, они обеспечивают, что неудивительно, «контекст» для чего бы то ни было. Т.е. некое состояние. Возможно, URL, возможно, некоторые заголовки HTTP, что угодно.
Вы видите их много, потому что ASP.NET сфокусирован на тестировании и, следовательно, позволяет «обмениваться» этими элементами, так что вы можете предоставить свои собственные реализации контекста (т.е. определить свои состояние), чтобы вы могли запускать тесты надлежащим образом и успешно.
Если вам интересно, что такое состояние , то это просто различные биты данных, которые "передаются" средой. То есть сегодня в офисе холодно . Это часть состояния . Но, возможно, я хочу запустить свой тест, когда в офисе жарко , поэтому я смог бы создать подкласс OfficeContext
и вернуть соответствующее состояние для соответствующего метода / и т. Д.