[Mono-dev] PATCH custom WebControls in skin files
Andrew Skiba
andrews at mainsoft.com
Tue Apr 11 03:26:24 EDT 2006
I don't want to commit code like this. This
Exception error = null;
try {
assembly = Assembly.LoadFrom (filename);
} catch (Exception e) { error = e; }
if (assembly == null)
ThrowParseException ("Assembly " + filename + " not
found", error);
looks more cryptic than this:
try {
assembly = Assembly.LoadFrom (filename);
} catch (Exception e) {
throw CreateParseException ("Assebly " + filename + "
not found", e);
}
So I'll wait for your opinion on refactoring ThrowParseException.
Thank you in advance.
Andrew.
> 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 at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
More information about the Mono-devel-list
mailing list