title: Missing Intellisense While Describing Custom Control Properties Declaratively
body: <p>So, I've been working on this project for a few days now, and have been unable to resolve the issue of getting intellisense support for my custom-defined inner properties for a user control (ascx, mind you). </p>
  
  <p>I have seen the solution to this (using server controls, .cs mind you) many times. Spelled out in this <a href="http://www.robertwray.co.uk/blog/2008/02/describing-aspnet-control-properties-declaratively.html" rel="nofollow noreferrer">article</a> very well. Everything works for me while using ascx controls except intellisense.</p>
  
  <p>Here's the outline of my code:</p>
  
  <pre><code>[PersistChildren(true)]
  [ParseChildren(typeof(BreadCrumbItem))]
  [ControlBuilder(typeof(BreadCrumbItem))]
  public partial class styledcontrols_buttons_BreadCrumb : System.Web.UI.UserControl
  {
      ...
  
      [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
      public List&lt;BreadCrumbItem&gt; BreadCrumbItems
      {
          get { return _breadCrumbItems; }
          set { _breadCrumbItems = value; }
      }
  
      ...
  
      protected override void AddParsedSubObject(object obj)
      {
              base.AddParsedSubObject(obj);
              if (obj is BreadCrumbItem)
                      BreadCrumbItems.Add(obj as BreadCrumbItem);
      }
  
      ...
  
      public class BreadCrumbItem : ControlBuilder
      {
          public string Text { get; set; }
          public string NavigateURL { get; set; }
  
          public override Type GetChildControlType(string tagName, System.Collections.IDictionary attribs)
          {
              if (String.Compare(tagName, "BreadCrumbItem", true) == 0)
              {
                  return typeof(BreadCrumbItem);
              }
              return null;
          }
      }
  }
  </code></pre>
  
  <p>Here's my mark up (which works fine, just no intellisense on the child object declarations):</p>
  
  <pre><code>&lt;%@ Register src="../styledcontrols/buttons/BreadCrumb.ascx" tagname="BreadCrumb" tagprefix="uc1" %&gt;
  
      ...
  
  &lt;uc1:BreadCrumb ID="BreadCrumb1" runat="server" BreadCrumbTitleText="Current Page"&gt;
      &lt;BreadCrumbItem Text="Home Page" NavigateURL="~/test/breadcrumbtest.aspx?iwentsomewhere=1" /&gt;
      &lt;BreadCrumbItem Text="Secondary Page" NavigateURL="~/test/breadcrumbtest.aspx?iwentsomewhere=1" /&gt;
  &lt;/uc1:BreadCrumb&gt;
  </code></pre>
  
  <p>I think the issue lies with how the intellisense engine traverses supporting classes. All the working examples I see of this are not ascx, but Web Server Controls (cs, in a compiled assembly).</p>
  
  <p>If anyone could shed some light on how to accomplish this with ascx controls, I'd appreciate it.</p>