protected override void GenerateEnumItem(CodeMemberField codeField, EnumMap.EnumMapMember emem) { if (emem.EnumName != emem.XmlName) { CodeAttributeDeclaration xatt = new CodeAttributeDeclaration("Mono.System.Xml.Serialization.SoapEnum"); xatt.Arguments.Add(GetArg("Name", emem.XmlName)); AddCustomAttribute(codeField, xatt, true); } }
XmlTypeMapping ImportEnumMapping(TypeData typeData, string defaultNamespace) { Type type = typeData.Type; XmlTypeMapping map = helper.GetRegisteredClrType(type, GetTypeNamespace(typeData, defaultNamespace)); if (map != null) { return(map); } ReflectionHelper.CheckSerializableType(type, false); map = CreateTypeMapping(typeData, null, defaultNamespace); helper.RegisterClrType(map, type, map.Namespace); map.MultiReferenceType = true; string [] names = Enum.GetNames(type); EnumMap.EnumMapMember[] members = new EnumMap.EnumMapMember[names.Length]; for (int n = 0; n < names.Length; n++) { FieldInfo field = type.GetField(names[n]); string xmlName = names[n]; object[] atts = field.GetCustomAttributes(typeof(SoapEnumAttribute), false); if (atts.Length > 0) { xmlName = ((SoapEnumAttribute)atts[0]).Name; } long value = ((IConvertible)field.GetValue(null)).ToInt64(CultureInfo.InvariantCulture); members[n] = new EnumMap.EnumMapMember(XmlConvert.EncodeLocalName(xmlName), names[n], value); } bool isFlags = type.IsDefined(typeof(FlagsAttribute), false); map.ObjectMap = new EnumMap(members, isFlags); ImportTypeMapping(typeof(object), defaultNamespace).DerivedTypes.Add(map); return(map); }
protected virtual void GenerateEnumItem(CodeMemberField codeField, EnumMap.EnumMapMember emem) { }