Exemplo n.º 1
0
 protected override void GenerateEnumItem(CodeMemberField codeField, EnumMap.EnumMapMember emem)
 {
     if (emem.EnumName != emem.XmlName)
     {
         CodeAttributeDeclaration xatt = new CodeAttributeDeclaration("Mpd.Xml.Serialization.SoapEnum");
         xatt.Arguments.Add(GetArg("Name", emem.XmlName));
         AddCustomAttribute(codeField, xatt, true);
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 protected virtual void GenerateEnumItem(CodeMemberField codeField, EnumMap.EnumMapMember emem)
 {
 }