private static void Create(string rootFolder, IServiceProvider serviceProvider, bool skipCrawl = true, bool skipPrecompile = true)
        {
            _Instance        = new WebApplicationProxy(rootFolder, skipCrawl, skipPrecompile);
            _ServiceProvider = serviceProvider;

            ReadWebConfig();

            InjectTestValuesIntoHttpRuntime();

            _hostingEnvironment = new HostingEnvironmentWrapper();

            _DummyRegisteredObject = new DummyRegisteredObject();
            HostingEnvironment.RegisterObject(_DummyRegisteredObject);

            SubstituteDummyHttpContext("/");

            _Instance.InitializeInternal();
        }
        private static void AddMasterPage(Page myPage)
        {
            if (string.IsNullOrEmpty(myPage.MasterPageFile))
            {
                return;
            }

            var master      = WebApplicationProxy.GetPageByLocation(myPage.MasterPageFile) as MasterPage;
            var masterField = typeof(Page).GetField("_master", BindingFlags.Instance | BindingFlags.NonPublic);

            masterField.SetValue(myPage, master);

            // Initialize the rest of the junk on page for the Master
            if (myPage.HasControls())
            {
                myPage.Controls.Clear();
            }
            var contentTemplates = ((Page)myPage).get_ContentTemplateCollection();

            master.SetContentTemplates(contentTemplates);
            master.SetOwnerControl((Page)myPage);
            master.InitializeAsUserControl(myPage.Page);
            myPage.Controls.Add(master);
        }