Example #1
0
        /// <summary>
        /// Scans all loaded assemblies. The given method provides the types to look for.
        /// </summary>
        /// <param name="sharedScanner">True if you'd like the scanners to be stored
        /// globally. They'll then be used on any newly loaded assemblies.</param>
        public static void ScanAllNow(AssemblyScannerMethod mtd, bool sharedScanner)
        {
            // Create an assembly scanner:
            Modular.AssemblyScanner scanner = new Modular.AssemblyScanner();

            // Add the checkers:
            mtd(scanner);

            // Scan all assemblies now:
            scanner.ScanAll();

            // Merge now:
            if (sharedScanner)
            {
                if (StartInfo.SharedScanner == null)
                {
                    StartInfo.SharedScanner = scanner;
                }
                else
                {
                    // merge!
                    scanner.MergeInto(StartInfo.SharedScanner);
                    scanner = StartInfo.SharedScanner;
                }
            }
        }
Example #2
0
        /// <summary>
        /// Adds all the type checkers to the given scanner.
        /// They basically automatically find CSS properties, units etc in assemblies.
        /// </summary>
        public static void AddToScanner(Modular.AssemblyScanner scanner)
        {
            // CSS functions:
            scanner.FindAllSubTypes(typeof(CssFunction), delegate(Type type){
                // Add it:
                CssFunctions.Add(type);
            });

            // CSS at rules:
            scanner.FindAllSubTypes(typeof(CssAtRule), delegate(Type type){
                // Add it:
                CssAtRules.Add(type);
            });

            // CSS units:
            scanner.FindAllSubTypes(typeof(CssUnit), delegate(Type type){
                // Add it:
                CssUnits.Add(type);
            });

            // CSS keywords:
            scanner.FindAllSubTypes(typeof(CssKeyword), delegate(Type type){
                // Add it:
                CssKeywords.Add(type);
            });

            // CSS properties (secondary pass; requires default values which can be any of the above):
            scanner.FindAllSubTypes(1, typeof(CssProperty), delegate(Type type){
                // Add it:
                CssProperties.Add(type);
            });
        }
Example #3
0
        /// <summary>
        /// Scans the assembly containing the given method
        /// which adds the types to look for.</summary>
        public static void ScanThisNow(AssemblyScannerMethod mtd)
        {
            // Create an assembly scanner:
            Modular.AssemblyScanner scanner = new Modular.AssemblyScanner();

            // Add the checkers:
            mtd(scanner);

            // Scan "this" assembly now:
            scanner.Scan(mtd.GetType());
        }
Example #4
0
        /// <summary>
        /// Adds all the type checkers to the given scanner.
        /// They basically automatically find elements etc in assemblies.
        /// </summary>
        public static void AddToScanner(Modular.AssemblyScanner scanner)
        {
            // Element:
            scanner.FindAllSubTypes(typeof(Dom.Element), delegate(Type type){
                // Add it:
                TagHandlers.Add(type);
            });

            // TextNode:
            scanner.FindAllSubTypes(typeof(Dom.TextNode), delegate(Type type){
                // Add it:
                TagHandlers.Add(type);
            });

            // ILangNode:
            scanner.FindAllSubTypes(typeof(Dom.ILangNode), delegate(Type type){
                // Add it:
                TagHandlers.Add(type);
            });
        }