/// <summary> /// Get object type /// </summary> /// <param name="serviceProvider"></param> /// <param name="tagPrefix"></param> /// <param name="typeName"></param> /// <returns></returns> public Type GetObjectType(IServiceProvider serviceProvider, string tagPrefix, string typeName) { if (String.Compare(tagPrefix, "asp", true) == 0) { return(Type.GetType(String.Concat(ASPNAMESPACE, ".", typeName, ", ", ASPASSEMBLY), false, true)); } IRegisterDirective registerDirective = GetRegisterDirective(tagPrefix, typeName); if (registerDirective == null) { return(null); } Type type = null; if (!registerDirective.IsUserControl) { string str = String.Concat(new string[] { registerDirective.NamespaceName, ".", typeName, ", ", registerDirective.AssemblyName }); //TODO: Make type out of file //DesignTimeParseData data = new DesignTimeParseData(host, parseText); //Control c = DesignTimeTemplateParser.ParseControl(data); //directive.ObjectType type = ((ITypeResolutionService)serviceProvider.GetService(typeof(ITypeResolutionService))).GetType(str, false, true); } else { type = typeof(UserControl); } return(type); }
Type IUserControlTypeResolutionService.GetType(string tagPrefix, string tagName) { IReferenceManager wrm = htmlEditor.ServiceProvider.GetService(typeof(IWebFormReferenceManager)) as IReferenceManager; if (wrm != null) { IRegisterDirective directive = wrm.GetRegisterDirective(tagPrefix, tagName); return(directive.ObjectType); } return(null); }
/// <summary> /// Add directive. /// </summary> /// <param name="directive"></param> /// <param name="raiseEvent"></param> public void AddRegisterDirective(IRegisterDirective directive, bool raiseEvent) { string str = directive.TagPrefix; if (directive.IsUserControl) { str = String.Concat(str, ":", directive.TagName); } bool flag = _registerDirectiveTable.Contains(str.ToLower()); _registerDirectiveTable[str.ToLower()] = directive; _registerDirectivesText = null; if (!flag && raiseEvent && DirectiveAdded != null) { DirectiveAdded(this, new DirectiveEventArgs(directive as IDirective)); } }
/// <summary> /// Add directive. /// </summary> /// <param name="directive"></param> public void AddRegisterDirective(IRegisterDirective directive) { AddRegisterDirective(directive, true); }
/// <summary> /// /// </summary> /// <param name="directive"></param> internal void AddParsedRegisterDirective(IRegisterDirective directive) { AddRegisterDirective(directive, false); }
/// <summary> /// Add a directive /// </summary> /// <param name="directive"></param> public void AddRegisterDirective(IRegisterDirective directive) { _registerDirectives.AddRegisterDirective(directive); InvokeDirectiveAdded(directive as IDirective); }
/// <summary> /// Add a directive. /// </summary> /// <param name="directive"></param> /// <param name="raiseEvent"></param> public void AddRegisterDirective(IRegisterDirective directive, bool raiseEvent) { _registerDirectives.AddRegisterDirective(directive, raiseEvent); InvokeDirectiveAdded(directive as IDirective); }