当前位置: 首页>>代码示例>>C#>>正文


C# HttpApplication.Dispose方法代码示例

本文整理汇总了C#中System.Web.HttpApplication.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# HttpApplication.Dispose方法的具体用法?C# HttpApplication.Dispose怎么用?C# HttpApplication.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Web.HttpApplication的用法示例。


在下文中一共展示了HttpApplication.Dispose方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: HttpApplicationProxy

        /// <summary>
        /// Initializes a new instance of the <see cref="T:HttpApplicationProxy"/> class.
        /// </summary>
        /// <param name="context">The HTTP context for the application.</param>
        /// <param name="namedHttpModules">The optional array of named HTTP modules to add to the application.</param>
        /// <exception cref="System.ArgumentNullException"><paramref name="context"/> is a null reference.</exception>
        public HttpApplicationProxy(HttpContext context, params Pair<String, IHttpModule>[] namedHttpModules)
            : base()
        {
            if (context == null) {
                throw new ArgumentNullException("context");
            }

            HttpApplication application = new HttpApplication();
            try {
                // Add the HTTP modules.
                if (namedHttpModules != null && namedHttpModules.Length > 0) {
                    HttpModuleCollection httpModuleCollection = (HttpModuleCollection)typeof(HttpModuleCollection).CreateInstance();
                    foreach (Pair<String, IHttpModule> namedHttpModule in namedHttpModules) {
                        if (namedHttpModule != null && namedHttpModule.First != null && namedHttpModule.Second != null) {
                            httpModuleCollection.InvokeMethod("AddModule", namedHttpModule.First, namedHttpModule.Second);
                        }
                    }
                    application.SetFieldValue("_moduleCollection", httpModuleCollection);
                }

                // Tie the HTTP context to the HTTP application.
                application.SetFieldValue("_context", context);
                application.SetFieldValue("_stepManager", typeof(HttpApplication).FindNestedType("ApplicationStepManager").CreateInstance(application));
                context.ApplicationInstance = application;
            }
            catch {
                application.Dispose();
                throw;
            }

            // Save the state.
            this._application = application;
        }
开发者ID:cegreer,项目名称:Common,代码行数:39,代码来源:HttpApplicationProxy.cs

示例2: SetupandInvokeEntryPoint

        /// <summary>
        /// Sets up and invokes an entry point on an <see cref="HttpApplication"/> implementer found
        /// by probing the given bin path.
        /// </summary>
        /// <param name="logger">The logger to use when probing.</param>
        /// <param name="binPath">The bin path to probe.</param>
        private void SetupandInvokeEntryPoint(ILogger logger, string binPath)
        {
            if (Directory.Exists(binPath))
            {
                HttpApplicationProbe probe = new HttpApplicationProbe(logger, binPath);
                Type type = HttpApplicationProbe.FindApplicationTypes(probe.FindApplicationAssemblies()).FirstOrDefault();

                if (type != null)
                {
                    logger.Info("Found an HTTP application requiring startup: {0}.", type.FullName);
                    HttpApplication httpApplication = null;

                    try
                    {
                        httpApplication = (HttpApplication)Activator.CreateInstance(type);
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex, "Failed to create an instance of the HTTP application {0}.", type.FullName);
                    }

                    if (httpApplication != null)
                    {
                        try
                        {
                            MethodInfo entryPoint = HttpApplicationProbe.FindEntryPoint(type);

                            if (entryPoint != null)
                            {
                                logger.Info("Invoking entry point for HTTP application {0}.", type.FullName);
                                this.InvokeEventHandler(httpApplication, entryPoint);
                            }
                            else
                            {
                                logger.Info("No entry point found for HTTP application {0}.", type.FullName);
                            }

                            this.httpApplication = httpApplication;
                            httpApplication = null;
                        }
                        catch (Exception ex)
                        {
                            logger.Error(ex, "Failed to invoke the entry point for HTTP application {0}.", type.FullName);

                            if (ex.InnerException != null)
                            {
                                logger.Error(ex.InnerException);
                            }
                        }
                        finally
                        {
                            if (httpApplication != null)
                            {
                                httpApplication.Dispose();
                            }
                        }
                    }
                }
            }
        }
开发者ID:ChadBurggraf,项目名称:blue-collar,代码行数:66,代码来源:MachineProxy.cs

示例3: DisposeHttpApplication

        /// <summary>
        /// Disposes of the HTTP applications that was created as an entry point.
        /// </summary>
        private void DisposeHttpApplication()
        {
            HttpApplication httpApplication = this.httpApplication;
            this.httpApplication = null;

            if (httpApplication != null)
            {
                try
                {
                    MethodInfo method = HttpApplicationProbe.FindExitPoint(httpApplication.GetType());

                    if (method != null)
                    {
                        this.logger.Info("Invoking exit point for HTTP application {0}.", httpApplication.GetType().FullName);
                        this.InvokeEventHandler(httpApplication, method);
                    }
                    else
                    {
                        this.logger.Info("No exit point found for HTTP application {0}.", httpApplication.GetType().FullName);
                    }
                }
                finally
                {
                    httpApplication.Dispose();
                }
            }
        }
开发者ID:ChadBurggraf,项目名称:blue-collar,代码行数:30,代码来源:MachineProxy.cs

示例4: Recycle

		internal static void Recycle (HttpApplication app)
		{
			bool dispose = false;
			HttpApplicationFactory factory = theFactory;
			if (Interlocked.CompareExchange (ref factory.next_free, app, null) == null)
				return;

			lock (factory.available) {
				if (factory.available.Count < 64)
					factory.available.Push (app);
				else
					dispose = true;
			}
			if (dispose)
				app.Dispose ();
		}
开发者ID:vargaz,项目名称:mono,代码行数:16,代码来源:HttpApplicationFactory.cs

示例5: RecycleForSessionEnd

		internal static void RecycleForSessionEnd (HttpApplication app)
		{
			bool dispose = false;
			HttpApplicationFactory factory = theFactory;
			lock (factory.available_for_end) {
				if (factory.available_for_end.Count < 64)
					factory.available_for_end.Push (app);
				else
					dispose = true;
			}
			if (dispose)
				app.Dispose ();
		}
开发者ID:vargaz,项目名称:mono,代码行数:13,代码来源:HttpApplicationFactory.cs

示例6: Methods_Deny_Unrestricted

		public void Methods_Deny_Unrestricted ()
		{
			HttpApplication app = new HttpApplication ();
			app.CompleteRequest ();
			app.GetVaryByCustomString (null, String.Empty);
			app.Dispose ();
		}
开发者ID:nobled,项目名称:mono,代码行数:7,代码来源:HttpApplicationCas.cs


注:本文中的System.Web.HttpApplication.Dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。