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

GenerateGetEnumValueMethod() private method

private GenerateGetEnumValueMethod ( XmlTypeMapping typeMap ) : void
typeMap XmlTypeMapping
return void
		void GenerateGetEnumValueMethod (XmlTypeMapping typeMap)
		{
			string metName = GetGetEnumValueName (typeMap);
			EnumMap map = (EnumMap) typeMap.ObjectMap;

			if (map.IsFlags)
			{
				string switchMethod =  metName + "_Switch";
				WriteLine (typeMap.TypeData.CSharpFullName + " " + metName + " (string xmlName)");
				WriteLineInd ("{");
				WriteLine ("xmlName = xmlName.Trim();");
				WriteLine ("if (xmlName.Length == 0) return (" + typeMap.TypeData.CSharpFullName + ")0;");
				WriteLine (typeMap.TypeData.CSharpFullName + " sb = (" + typeMap.TypeData.CSharpFullName + ")0;");
				WriteLine ("string[] enumNames = xmlName.Split (null);");
				WriteLine ("foreach (string name in enumNames)");
				WriteLineInd ("{");
				WriteLine ("if (name == string.Empty) continue;");
				WriteLine ("sb |= " + switchMethod + " (name); ");
				WriteLineUni ("}");
				WriteLine ("return sb;");
				WriteLineUni ("}");
				WriteLine ("");
				metName = switchMethod;
			}

			WriteLine (typeMap.TypeData.CSharpFullName + " " + metName + " (string xmlName)");
			WriteLineInd ("{");
			GenerateGetSingleEnumValue (typeMap, "xmlName");
			WriteLineUni ("}");
			WriteLine ("");
		}
		
SerializationCodeGenerator