System.Xaml.XamlXmlReader.MoveToNextMarkupExtensionAttributeMember C# (CSharp) Method

MoveToNextMarkupExtensionAttributeMember() private method

private MoveToNextMarkupExtensionAttributeMember ( ) : bool
return bool
		bool MoveToNextMarkupExtensionAttributeMember ()
		{
			if (markup_extension_attr_members != null) {
				switch (node_type) {
				case XamlNodeType.StartObject:
				case XamlNodeType.EndMember:
					// -> next member or end object
					if (!markup_extension_attr_members.MoveNext ()) {
						node_type = XamlNodeType.EndObject;
					} else {
						current = current_member = markup_extension_attr_members.Current.Key;
						members.Push (current_member);
						node_type = XamlNodeType.StartMember;
					}
					return true;
				case XamlNodeType.EndObject:
					types.Pop ();
					markup_extension_attr_members = null;
					return false;
				case XamlNodeType.StartMember:
					node_type = XamlNodeType.Value;
					current = markup_extension_attr_members.Current.Value;
					if (current_member == XamlLanguage.PositionalParameters) {
						markup_extension_attr_values = ((List<string>) current).GetEnumerator ();
						goto case XamlNodeType.Value;
					}
					return true;
				case XamlNodeType.Value:
					if (markup_extension_attr_values != null) {
						if (markup_extension_attr_values.MoveNext ())
							current = markup_extension_attr_values.Current;
						else {
							node_type = XamlNodeType.EndMember;
							markup_extension_attr_values = null;
						}
					}
					else
						node_type = XamlNodeType.EndMember;
					return true;
				}
			}
			return false;
		}