{
// First try loaded assemblies, then try assemblies in Bin directory.
// By now i do this 'by hand' but may be this is a runtime/gac task.
- Type type = Type.GetType (typeName);
- if (type != null)
- return type;
+ Type type = null;
+ Assembly [] assemblies = AppDomain.CurrentDomain.GetAssemblies ();
+ foreach (Assembly ass in assemblies) {
+ type = ass.GetType (typeName);
+ if (type != null)
+ return type;
+ }
- string [] binDlls = Directory.GetFiles (privateBinPath, "*.dll");
Assembly assembly;
+ string [] binDlls = Directory.GetFiles (privateBinPath, "*.dll");
foreach (string dll in binDlls) {
string dllPath = Path.Combine (privateBinPath, dll);
assembly = null;
switch (data.result) {
case UserControlResult.OK:
AddUsing ("ASP");
- string dll = "output" + Path.DirectorySeparatorChar + data.assemblyName + ".dll";
Foundry.RegisterFoundry (tag_prefix, tag_name, data.assemblyName, "ASP", data.className);
AddReference (data.assemblyName);
break;
string control_type_string = controls.PeekType ().ToString ();
StringBuilder db_function = controls.DataBindFunction;
string container;
- if (controls.Container == null)
+ if (controls.Container == null || !typeof (INamingContainer).IsAssignableFrom (controls.Container))
container = "System.Web.UI.Control";
- else
+ else {
container = controls.Container.ToString ();
+ }
if (db_function.Length == 0)
db_function.AppendFormat ("\t\tpublic void __DataBind_{0} (object sender, " +
"FromArgb ({1}, {2}, {3}, {4});\n",
var_name, c.A, c.R, c.G, c.B);
}
- }
- else {
+ }
+ else if (type == typeof (string [])) {
+ string [] subStrings = att.Split (',');
+ current_function.AppendFormat ("\t\t\t__ctrl.{0} = new String [] {{\n", var_name);
+ int end = subStrings.Length;
+ for (int i = 0; i < end; i++) {
+ string s = subStrings [i].Trim ();
+ current_function.AppendFormat ("\t\t\t\t\"{0}\"", s);
+ if (i == end - 1)
+ current_function.Append ("\t\t\t\t};\n");
+ else
+ current_function.Append (",\n");
+ }
+ } else {
throw new ApplicationException ("Unsupported type in property: " +
type.ToString ());
}
NewControlFunction (component.TagID, component.ControlID, component_type,
component.ChildrenKind, component.DefaultPropertyName);
- if (component_type.IsSubclassOf (typeof (System.Web.UI.UserControl)))
+ if (component_type == typeof (UserControl) ||
+ component_type.IsSubclassOf (typeof (System.Web.UI.UserControl)))
current_function.Append ("\t\t\t__ctrl.InitializeAsUserControl (Page);\n");
- if (component_type.IsSubclassOf (typeof (System.Web.UI.Control)))
+ if (component_type == typeof (Control) ||
+ component_type.IsSubclassOf (typeof (System.Web.UI.Control)))
current_function.AppendFormat ("\t\t\t__ctrl.ID = \"{0}\";\n", component.ControlID);
AddCodeForAttributes (component.ComponentType, component.Attributes);