patch looks fine, but I'd prefer an AddAssemblyByFileName that looks
more like AddAssemblyByName, as in:

        internal virtual Assembly AddAssemblyByFileName (string filename)
        {
                Assembly assembly = null;
                Exception error = null;

                try {
                        assembly = Assembly.LoadFrom (filename);
                } catch (Exception e) { error = e; }

                if (assembly == null)
                        ThrowParseException ("Assembly " + filename + " not 
found", error);

                AddAssembly (assembly, true);
                return assembly;
        }


Chris

On Mon, 2006-04-10 at 02:34 -0700, Andrew Skiba wrote:
> When I use a custom web control in a skin file, then the dll holding
> this control must be added to references when compiling PageTheme. The
> attached patch makes this possible. As such references is already found
> by parsers of individual skins, it's only necessary to add new
> assemblies to the theme directory parser.
> 
> If no one objects, I will commit.
> 
> Index: ThemeDirectoryCompiler.cs
> ===================================================================
> --- ThemeDirectoryCompiler.cs (revision 59261)
> +++ ThemeDirectoryCompiler.cs (working copy)
> @@ -62,7 +62,11 @@
>                                       if (!(o is ControlBuilder))
>                                               continue;
>                                       ptp.RootBuilder.AppendSubBuilder
> ((ControlBuilder)o);
> -                             }
> +                             }
> +
> +                             foreach (string ass in ptfp.Assemblies)
> +                                     if (!ptp.Assemblies.Contains
> (ass))
> +
> ptp.AddAssemblyByFileName (ass);
>                       }
>  
>                       PageThemeCompiler compiler = new
> PageThemeCompiler (ptp);
> Index: TemplateParser.cs
> ===================================================================
> --- TemplateParser.cs (revision 59261)
> +++ TemplateParser.cs (working copy)
> @@ -390,6 +390,20 @@
>                       }
>               }
>  
> +             internal virtual Assembly AddAssemblyByFileName (string
> filename)
> +             {
> +                     try {
> +                             Assembly assembly = Assembly.LoadFrom
> (filename);
> +                             AddAssembly (assembly, true);
> +                             return assembly;
> +                     }
> +                     catch (Exception e)
> +                     {
> +                             ThrowParseException ("Assembly file " +
> filename + " not found", e);
> +                             return null; //never gets here, only to
> satisfy the compiler
> +                     }
> +             }
> +
>               internal virtual Assembly AddAssemblyByName (string
> name)
>               {
>                       if (anames == null)
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to