PreloadHost.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Hosting / PreloadHost.cs / 1305376 / PreloadHost.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.Hosting { 
 
    using System;
    using System.Web; 
    using System.Web.Util;
    using System.Configuration;

    internal sealed class PreloadHost : MarshalByRefObject, IRegisteredObject { 

        public PreloadHost() { 
            HostingEnvironment.RegisterObject(this); 
        }
 
        public void CreateIProcessHostPreloadClientInstanceAndCallPreload(string preloadObjTypeName, string[] paramsForStartupObj) {

            using (new ApplicationImpersonationContext()) {
                // Check the type 
                Type preloadObjType = null;
                try { 
                    preloadObjType = Type.GetType(preloadObjTypeName, true); 
                }
                catch (Exception e) { 
                    throw new InvalidOperationException (
                        Misc.FormatExceptionMessage(e, new string[]{
                            SR.GetString(SR.Failure_Create_Application_Preload_Provider_Type, preloadObjTypeName)} ));
                } 

                if (!typeof(IProcessHostPreloadClient).IsAssignableFrom(preloadObjType)) { 
                    throw new ConfigurationErrorsException(SR.GetString(SR.Invalid_Application_Preload_Provider_Type, preloadObjTypeName)); 
                }
 
                // Let all other exceptons fall through to the default AppDomain
                IProcessHostPreloadClient preloadClient = (IProcessHostPreloadClient)Activator.CreateInstance(preloadObjType);
                preloadClient.Preload(paramsForStartupObj);
            } 
        }
 
        internal Exception InitializationException { get { return HttpRuntime.InitializationException; } } 

        void IRegisteredObject.Stop(bool immediate) { 
            HostingEnvironment.UnregisterObject(this);
        }

        public override Object InitializeLifetimeService() { 
            return null; // never expire lease
        } 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK