Я занимаюсь разработкой библиотеки, которая распространяется внутри моей компании и используется различными приложениями. Эта библиотека должна быть независимой от платформы в том смысле, что она может быть развернута в веб-контексте или даже в консольном приложении. Я хотел бы зарегистрировать объекты для каждого http-запроса или потока, в зависимости от контекста приложения, использующего эту платформу. В StructureMap я могу сделать это, используя время жизни Hybrid. По сути, если HttpContext существует, то объект будет ограничен этим, иначе ThreadLocalStorage будет использоваться для каждого потока. Никакой дополнительной конфигурации не требуется для распределенной библиотеки или потребляющего приложения. Возможно ли это с помощью Autofac? Учитывая нашу широкую вариативность уровней квалификации разработчиков, наша цель - минимизировать / исключить любую специализированную конфигурацию для потребителей.
Я понимаю, что регистрации могут не зависеть от контекста, используя время жизни InstancePerLifetimeScope, но тогда потребляющие приложения должны использовать двоичные файлы интеграции ASP.NET / WCF / MVC , чтобы связать регистрации InstancePerLifetimeScope с запросом Http. , Или, для областей на поток, потребляющий код должен нести ответственность за создание области действия времени жизни для потока .
Есть предложения?