當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。