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