System.Xml.Serialization.SerializationCodeGenerator.GenerateReadRoot C# (CSharp) Method

GenerateReadRoot() private method

private GenerateReadRoot ( ) : void
return void
		void GenerateReadRoot ()
		{
			WriteLine ("public object " + _result.ReadMethodName + " ()");
			WriteLineInd ("{");
			WriteLine ("Reader.MoveToContent();");
			
			if (_typeMap is XmlTypeMapping)
			{
				XmlTypeMapping typeMap = (XmlTypeMapping) _typeMap;

				if (_format == SerializationFormat.Literal)
				{
					if (typeMap.TypeData.SchemaType == SchemaTypes.XmlNode) {
						if (typeMap.TypeData.Type == typeof (XmlDocument))
							WriteLine ("return ReadXmlDocument (false);");
						else
							WriteLine ("return ReadXmlNode (false);");
					} else {
						WriteLineInd ("if (Reader.LocalName != " + GetLiteral (typeMap.ElementName) + " || Reader.NamespaceURI != " + GetLiteral (typeMap.Namespace) + ")");
						WriteLine ("throw CreateUnknownNodeException();");
						Unindent ();

						WriteLine ("return " + GetReadObjectCall (typeMap, GetLiteral(typeMap.IsNullable), "true") + ";");
					}
				}
				else
				{
					WriteLine ("object ob = null;");
					WriteLine ("Reader.MoveToContent();");
					WriteLine ("if (Reader.NodeType == System.Xml.XmlNodeType.Element) ");
					WriteLineInd ("{");
					WriteLineInd ("if (Reader.LocalName == " + GetLiteral(typeMap.ElementName) + " && Reader.NamespaceURI == " + GetLiteral (typeMap.Namespace) + ")");
					WriteLine ("ob = ReadReferencedElement();");
					Unindent ();
					WriteLineInd ("else ");
					WriteLine ("throw CreateUnknownNodeException();");
					Unindent ();
					WriteLineUni ("}");
					WriteLineInd ("else ");
					WriteLine ("UnknownNode(null);");
					Unindent ();
					WriteLine ("");
					WriteLine ("ReadReferencedElements();");
					WriteLine ("return ob;");
					RegisterReferencingMap (typeMap);
				}
			}
			else {
				WriteLine ("return " + GenerateReadMessage ((XmlMembersMapping)_typeMap) + ";");
			}

			WriteLineUni ("}");
			WriteLine ("");
		}
		
SerializationCodeGenerator