我正在使用web api MVC 4创建一个简单的Web服务,我使用Unity web api作为我的IOC,如何在文档中说它将其添加到application_start
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包装器只为所有请求创建一次,是否可能?
答案 0 :(得分:1)
Application_Start
仅在应用程序启动时触发一次(请参阅下面的注释) - 不是每次请求。
请记住,以下内容可能会导致应用程序重新启动...
因此,当您正在观看时,可能会导致应用程序启动&#34;这使它看起来更频繁地被调用。