System.Xml.Serialization.EnumMap.GetXmlName C# (CSharp) Method

GetXmlName() public method

public GetXmlName ( string typeName, object enumValue ) : string
typeName string
enumValue object
return string
		public string GetXmlName (string typeName, object enumValue)
		{
			if (enumValue is string) {
				throw new InvalidCastException ();
			}

			long value = 0;

			try {
				value = ((IConvertible) enumValue).ToInt64 (CultureInfo.CurrentCulture);
			} catch (FormatException) {
				throw new InvalidCastException ();
			}

			for (int i = 0; i < Values.Length; i++) {
				if (Values[i] == value)
					return XmlNames[i];
			}

			if (IsFlags && value == 0)
				return string.Empty;

			string xmlName = string.Empty;
			if (IsFlags) {
#if NET_2_0
				xmlName = XmlCustomFormatter.FromEnum (value, XmlNames, Values, typeName);
#else
				xmlName = XmlCustomFormatter.FromEnum (value, XmlNames, Values);
#endif
			}

			if (xmlName.Length == 0) {
#if NET_2_0
				throw new InvalidOperationException (string.Format(CultureInfo.CurrentCulture,
					"'{0}' is not a valid value for {1}.", value, typeName));
#else
				return value.ToString (CultureInfo.InvariantCulture);
#endif
			}
			return xmlName;
		}

Usage Example

 private string ExportDefaultValue(TypeData typeData, XmlTypeMapping map, object defaultValue)
 {
     if (typeData.SchemaType == SchemaTypes.Enum)
     {
         EnumMap enumMap = (EnumMap)map.ObjectMap;
         return(enumMap.GetXmlName(map.TypeFullName, defaultValue));
     }
     return(XmlCustomFormatter.ToXmlString(typeData, defaultValue));
 }
All Usage Examples Of System.Xml.Serialization.EnumMap::GetXmlName