[Mono-dev] PATCH custom WebControls in skin files

Chris Toshok toshok at ximian.com
Mon Apr 10 13:32:16 EDT 2006


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



More information about the Mono-devel-list mailing list