static IUnresolvedTypeDefinition CreateCodeBesideClass(DocumentInfo info, WebFormsTypeContext refman)
        {
            var memberList = new WebFormsMemberListBuilder(refman, info.AspNetDocument.XDocument);

            memberList.Build();
            var t        = new ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedTypeDefinition(info.ClassName);
            var dom      = refman.Compilation;
            var baseType = ReflectionHelper.ParseReflectionName(info.BaseType).Resolve(dom);

            foreach (var m in WebFormsCodeBehind.GetDesignerMembers(memberList.Members.Values, baseType, null))
            {
                t.Members.Add(new ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedField(t, m.Name)
                {
                    Accessibility = Accessibility.Protected,
                    ReturnType    = m.Type.ToTypeReference()
                });
            }
            return(t);
        }
        void AsyncUpdateDesignerFile(object sender, EventArgs e)
        {
            if (project == null)
            {
                return;
            }

            var file = project.GetProjectFile(FileName);

            if (file == null)
            {
                return;
            }

            var designerFile = WebFormsCodeBehind.GetDesignerFile(file);

            if (designerFile == null)
            {
                return;
            }

            System.Threading.ThreadPool.QueueUserWorkItem(r => {
                using (var monitor = MonoDevelop.Ide.IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor(
                           GettextCatalog.GetString("Updating ASP.NET Designer File..."), null, false))
                {
                    var writer = CodeBehindWriter.CreateForProject(monitor, project);
                    var result = WebFormsCodeBehind.UpdateDesignerFile(writer, project, file, designerFile);
                    //don't worry about reporting error's here for now
                    //if the user wants to see errors, they can compile
                    if (!result.Failed)
                    {
                        writer.WriteOpenFiles();
                    }
                }
            });
        }