示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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));
            }
        }
示例#4
0
 /// <summary>
 /// Add directive.
 /// </summary>
 /// <param name="directive"></param>
 public void AddRegisterDirective(IRegisterDirective directive)
 {
     AddRegisterDirective(directive, true);
 }
示例#5
0
 /// <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);
 }