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

GenerateReadObject() private method

private GenerateReadObject ( XmlTypeMapping typeMap ) : void
typeMap XmlTypeMapping
return void
		void GenerateReadObject (XmlTypeMapping typeMap)
		{
			string isNullable;
			if (_format == SerializationFormat.Literal) {
				WriteLine ("public " + typeMap.TypeData.CSharpFullName + " " + GetReadObjectName (typeMap) + " (bool isNullable, bool checkType)");
				isNullable = "isNullable";
			}
			else {
				WriteLine ("public object " + GetReadObjectName (typeMap) + " ()");
				isNullable = "true";
			}
			
			WriteLineInd ("{");

			PushHookContext ();
			
			SetHookVar ("$TYPE", typeMap.TypeData.CSharpName);
			SetHookVar ("$FULLTYPE", typeMap.TypeData.CSharpFullName);
			SetHookVar ("$NULLABLE", "isNullable");
			
			switch (typeMap.TypeData.SchemaType)
			{
				case SchemaTypes.Class: GenerateReadClassInstance (typeMap, isNullable, "checkType"); break;
				case SchemaTypes.Array: 
					string list = GenerateReadListElement (typeMap, null, isNullable, true);
					if (list != null)
						WriteLine ("return " + list + ";"); 
					break;
				case SchemaTypes.XmlNode: GenerateReadXmlNodeElement (typeMap, isNullable); break;
				case SchemaTypes.Primitive: GenerateReadPrimitiveElement (typeMap, isNullable); break;
				case SchemaTypes.Enum: GenerateReadEnumElement (typeMap, isNullable); break;
				case SchemaTypes.XmlSerializable: GenerateReadXmlSerializableElement (typeMap, isNullable); break;
				default: throw new Exception ("Unsupported map type");
			}
			
			WriteLineUni ("}");
			WriteLine ("");
			PopHookContext ();
		}
				
SerializationCodeGenerator