Esempio n. 1
0
        void AddMember(XElement element)
        {
            string id;

            if (element.IsRunatServer() && !string.IsNullOrEmpty(id = element.GetId()))
            {
                if (Members.ContainsKey(id))
                {
                    Errors.Add(new Error(
                                   ErrorType.Error,
                                   GettextCatalog.GetString("Tag ID must be unique within the document: '{0}'.", id),
                                   element.Region
                                   )
                               );
                }
                else
                {
                    string controlType = element.Attributes.GetValue(new XName("type"), true);
                    var    type        = docRefMan.GetType(element.Name.Prefix, element.Name.Name, controlType);

                    if (type == null)
                    {
                        Errors.Add(
                            new Error(
                                ErrorType.Error,
                                GettextCatalog.GetString("The tag type '{0}{1}{2}' has not been registered.",
                                                         element.Name.Prefix,
                                                         element.Name.HasPrefix ? string.Empty : ":",
                                                         element.Name.Name),
                                element.Region
                                )
                            );
                    }
                    else
                    {
                        Members [id] = new CodeBehindMember(id, type, element.Region.Begin);
                    }
                }
            }
            foreach (XElement child in element.Nodes.OfType <XElement> ())
            {
                AddMember(child);
            }
        }
		void AddMember (XElement element)
		{
			string id;
			if (element.IsRunatServer () && !string.IsNullOrEmpty (id = element.GetId ())) {
				
				if (Members.ContainsKey (id)) {
					Errors.Add (new Error (
						ErrorType.Error,
						GettextCatalog.GetString ("Tag ID must be unique within the document: '{0}'.", id),
						element.Region
					)
					);
				} else {
					string controlType = element.Attributes.GetValue (new XName ("type"), true);
					var type = docRefMan.GetType (element.Name.Prefix, element.Name.Name, controlType);
	
					if (type == null) {
						Errors.Add (
							new Error (
								ErrorType.Error,
								GettextCatalog.GetString ("The tag type '{0}{1}{2}' has not been registered.", 
						                          element.Name.Prefix, 
						                          element.Name.HasPrefix ? string.Empty : ":", 
						                          element.Name.Name),
								element.Region
							)
						);
					} else
						Members [id] = new CodeBehindMember (id, type, element.Region.Begin);
				}

			}
			foreach (XElement child in element.Nodes.OfType<XElement> ())
				AddMember (child);
		}