я создаю простой веб-сервис, с помощью веб-апи MVC 4, я использую Unity Web API, как мой МОК, как всегда в документации сказано, чтобы добавить его к Application_StartUnity WebAPI контейнер создается каждый раз, когда
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
Bootstrapper.Initialise();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
, что означает, что для каждого запроса он создается
public static void Initialise()
{
_container = BuildUnityContainer();
GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(_container);
}
private static IUnityContainer BuildUnityContainer()
{
_container = new UnityContainer();
// register all your components with the container here
LoggingUtilities.LoadConfigFile("ThirdParty.log4net");
ILog log = LoggingUtilities.DefaultLogger;
_container.RegisterInstance<ILog>(log);
log.InfoFormat("In BuildUnityContainer");
OpClientWrapper wrapper = new OpClientWrapper(log);
_container.RegisterInstance<OpClientWrapper>(wrapper, new ContainerControlledLifetimeManager());
return _container;
}
я хочу, чтобы мой Opclient обертка будет создан только один раз для всех запросов, возможно ли это?
Application_Start вызывается только один раз. При первом запросе на webservice –
, на который я рассчитывал, но каждый запрос я вижу вызов Bootstrapper.Initialise(); –
Нажмите на этот метод и найдите все ссылки для него. :) вы можете найти несколько ссылок. –