Подтвердить что ты не робот

Что это за контекст?

Я начинаю видеть контексты везде, где я смотрю. В ASP.NET MVC существуют ControllerContexts, RequestContexts, HttpContexts, FormContexts. В Entity Framework у вас есть ObjectContexts и DbContexts. Ninject имеет Ninject.Activation.IContext.

Что это за контекст?

4b9b3361

Ответ 1

Ну, это своего рода вещь, связанная с зависимостью, которая позволяет людям сказать: "Вот среда, в которой вы будете работать". Как правило, они обеспечивают, что неудивительно, "контекст" для всего, что он есть. I.e., некоторое состояние. Возможно, URL, возможно, некоторые HTTP-заголовки, что угодно.

Вы видите их много, потому что ASP.NET ориентирован на тестирование и, следовательно, позволяет "заменять" эти элементы таким образом, что вы можете предоставить свои собственные реализации контекста (то есть определить собственное состояние), чтобы вы может выполнять тесты надлежащим образом и успешно.

Если вам интересно, какое состояние, ну, это просто разные биты данных, которые "даны", окружающей средой. То есть сегодня в офисе холодно. Это часть государства. Но, возможно, я хочу запустить свой тест, когда он горячий в офисе, поэтому я мог бы подкласса OfficeContext и вернуть соответствующее состояние для соответствующего метода/etc.

Ответ 2

IMO, Context обозначает некоторое (возможно изменяемое) состояние о какой-то вещи. Обычно контекст будет поперечным слоем и часто переносит данные о доменах по уровням.

Ответ 3

Контекст - это информация за пределами области действия, которую вы сейчас делаете, но которая имеет существенные последствия.

Представьте, если кто-то спросит вас о значении английского слова "fly". Существует несколько определений: жужжание маленьких инспекций или постоянный акт скольжения по воздуху. Чтобы дать правильный ответ, вам нужен контекст, который говорит вам, какое определение они ищут - читают ли они книгу о двукрылых или братьях Райт?

Что касается вычислений, скажем, вы используете обработчик HTTP. Он мог бы генерировать ответ, не зная ничего другого (Hello, World!), Но более вероятно, что ему нужен контекст информации HTTP-запроса - каковы параметры запроса, допустимые типы кодирования и т.д., Чтобы он мог создавать значимый ответ на пользовательский агент.

Ответ 4

Я думаю о них как о переменных среды и настройках профиля в сеансе telnet/ssh. Они объединяют разные настройки, чтобы инструменты могли работать по-разному на основе контекста (например, среды), в которой они выполняются.

Ответ 5

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

Ответ 6

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