Вопрос

Я начинаю видеть контексты везде, где я смотрю. В ASP.NET MVC есть ControlerContexts, requestContexts, httpContexts, FormContexts. В рамках сущности у вас есть ObjectContexts и DBContexts. Ninject имеет ninject.activation.icontext.

Что, черт возьми, контекст?

Это было полезно?

Решение

Что ж, это своего рода инъекция зависимости, которая позволяет людям сказать: «Вот среда, в которой вы будете работать». Как правило, они неудивительно, что «контекст» для того, что он есть. Т.е. какое -то состояние. Возможно, URL, возможно, некоторые заголовки HTTP, что угодно.

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

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

Другие советы

ИМО, контекст обозначает некоторые (возможно, изменяемые) состояние о что-нибудь. Анкет Как правило, контекст будет перекрестным слоями и часто несет нейтральные доменные данные между уровнями.

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

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

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

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

ИМО, это просто еще один аргумент. В моем (ограниченном) опыте я видел, как это был класс по вызову. Ты должен знать какие ты делаешь, чтобы делать то, что делаешь Что ж. Анкет Контекст - это то, что вы делаете, что происходит/работает.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top