Beispiel #1
0
        public static AspNet_Page map_ControlBuilders(this AspNet_Page aspNetPage, BaseParser pageParser)
        {
            var rootBuilder = (ControlBuilder)pageParser.property("RootBuilder");

            aspNetPage.CodeBlock = rootBuilder.mapControlBuilder();
            return(aspNetPage);
        }
Beispiel #2
0
        public static AspNet_Page map_Page(this AspNet_Page aspNetPage)
        {
            aspNetPage.map_Parser(aspNetPage.parser);

            aspNetPage.map_ControlBuilders(aspNetPage.parser);

            aspNetPage.map_CompiledSourceCode();

            var pagesConfig = (System.Web.Configuration.PagesSection)aspNetPage.parser.property("PagesConfig");

            aspNetPage.map_PagesConfig(pagesConfig);

            return(aspNetPage);
        }
Beispiel #3
0
        public static AspNet_Page parseAspNetPage(this AspNet_Page aspNetPage, string aspNetPageToParse)
        {
            aspNetPage.virtualPath = "System.web".assembly().type("VirtualPath").ctor(aspNetPageToParse);
            aspNetPage.tempDllFile = "o2_aspnet__{0}.dll".format(5.randomLetters());
            //return tempFile;

            aspNetPage.buildProvidersCompiler = "System.web".assembly()
                                                .type("BuildProvidersCompiler")
                                                .ctor(aspNetPage.virtualPath, aspNetPage.tempDllFile);

            //var buildManager
            aspNetPage.buildProvider = (System.Web.Compilation.BuildProvider)
                                       typeof(System.Web.Compilation.BuildManager).invokeStatic(
                "CreateBuildProvider",
                aspNetPage.virtualPath,
                (CompilationSection)aspNetPage.buildProvidersCompiler.property("CompConfig"),
                (ICollection)aspNetPage.buildProvidersCompiler.property("ReferencedAssemblies"),
                true);

            aspNetPage.compConfig = (CompilationSection)aspNetPage.buildProvidersCompiler.property("CompConfig");

            aspNetPage.assemblyBuilder = (AssemblyBuilder)aspNetPage.buildProvider.property("CodeCompilerType")
                                         .invoke("CreateAssemblyBuilder",
                                                 (CompilationSection)aspNetPage.buildProvidersCompiler.property("CompConfig"),
                                                 (ICollection)aspNetPage.buildProvidersCompiler.property("ReferencedAssemblies"));

            //textWriter = (TextWriter)assemblyBuilder.invoke("CreateCodeFile", buildProvider);

            try
            {
                aspNetPage.buildProvider.invoke("GenerateCode", aspNetPage.assemblyBuilder);
            }
            catch (Exception ex)
            {
                ex.Message.error();                //log();
            }

            aspNetPage.parser = aspNetPage.buildProvider.property <BaseParser>("Parser");

            //var pagesConfig = (System.Web.Configuration.PagesSection)aspNetPage.pageParser.property("PagesConfig");

            aspNetPage.map_Page();

            return(aspNetPage);
        }
Beispiel #4
0
        public static AspNet_Page map_CompiledSourceCode(this AspNet_Page aspNetPage)
        {
            if (aspNetPage.Store_Compiled_AspNet_SourceCode)
            {
                var fileMappings = (Hashtable)aspNetPage.assemblyBuilder.field("_buildProviderToSourceFileMap");

                foreach (var file in fileMappings.Values)
                {
                    var sourceCode = file.str().fileContents();
                    if (sourceCode.valid())
                    {
                        aspNetPage.AspNet_Compiled_SourceCode.add(sourceCode);
                        "saved contents of compiled asp.net page: {0}".info(file);
                    }
                    else
                    {
                        "in aspNetPage parser, could not get source code for file: {0}".error(file);
                    }
                }
            }
            return(aspNetPage);
        }
Beispiel #5
0
        public static AspNet_Page map_Parser(this AspNet_Page aspNetPage, BaseParser parser)
        {
            aspNetPage.Virtual_Path = parser.property("CurrentVirtualPathString").str();
            aspNetPage.ConfigItems.add("CurrentVirtualPathString", parser.property("CurrentVirtualPathString").str())
            .add("DefaultBaseType", parser.property("DefaultBaseType").str())
            .add("DefaultFileLevelBuilderType", parser.property("DefaultFileLevelBuilderType").str())
            .add("HasCodeBehind", parser.property("HasCodeBehind").str())
            .add("IsCodeAllowed", parser.property("IsCodeAllowed").str());

            if (aspNetPage.Store_AspNet_SourceCode)
            {
                aspNetPage.AspNet_SourceCode = parser.property("Text").str();
            }

            foreach (DictionaryEntry namespaceEntry in (Hashtable)parser.property("NamespaceEntries"))
            {
                aspNetPage.Namespaces.add(namespaceEntry.Key.str());                //
            }
            foreach (var sourceDependencies in (IEnumerable)parser.property("SourceDependencies"))
            {
                aspNetPage.SourceDependencies.add(sourceDependencies.str());                //
            }
            return(aspNetPage);
        }
Beispiel #6
0
 public static List <CodeBlock> allCodeBlocks(this AspNet_Page aspNetPage)
 {
     return(aspNetPage.CodeBlock.allCodeBlocks());
 }
Beispiel #7
0
 public static AspNet_Page map_PagesConfig(this AspNet_Page aspNetPage, PagesSection pagesSection)
 {
     aspNetPage.PagesConfig = pagesSection.property_Values_AsStrings();
     return(aspNetPage);
 }