Exemplo n.º 1
0
 public void SerializeEnum(object obj, SirenCustomEnum sirenEnum)
 {
     Writer.OnValue(obj);
 }
Exemplo n.º 2
0
        static SirenMachine()
        {
            BuildinTypes.Add(Bool.Name, Bool);
            BuildinTypes.Add(Int8.Name, Int8);
            BuildinTypes.Add(UInt8.Name, UInt8);
            BuildinTypes.Add(Int16.Name, Int16);
            BuildinTypes.Add(UInt16.Name, UInt16);
            BuildinTypes.Add(Int32.Name, Int32);
            BuildinTypes.Add(UInt32.Name, UInt32);
            BuildinTypes.Add(Int64.Name, Int64);
            BuildinTypes.Add(UInt64.Name, UInt64);
            BuildinTypes.Add(Float.Name, Float);
            BuildinTypes.Add(Double.Name, Double);
            BuildinTypes.Add(String.Name, String);
            BuildinTypes.Add(Blob.Name, Blob);
            BuildinTypes.Add(List.Name, List);
            BuildinTypes.Add(Dictionary.Name, Dictionary);

            //alias
            BuildinTypes.Add("int8", Int8);
            BuildinTypes.Add("uint8", UInt8);
            BuildinTypes.Add("int16", Int16);
            BuildinTypes.Add("uint16", UInt16);
            BuildinTypes.Add("int32", Int32);
            BuildinTypes.Add("uint32", UInt32);
            BuildinTypes.Add("long", Int64);
            BuildinTypes.Add("ulong", UInt64);
            BuildinTypes.Add("string", String);
            BuildinTypes.Add("String", String);
            BuildinTypes.Add("blob", Blob);

            //register types
            var allAssemblies = GetAllAssemblies();

            foreach (var assemblyName in allAssemblies)
            {
                var assembly = Assembly.Load(assemblyName.Value);
                var types    = assembly.GetTypes();
                foreach (var type in types)
                {
                    var attr2 = type.GetCustomAttributes(typeof(SirenClassAttribute), false);
                    if (attr2.Length > 0)
                    {
                        SirenCustomClass sirenClass = new SirenCustomClass(type, attr2[0] as SirenClassAttribute);
                        AllSirenClasses.Add(type, sirenClass);
                    }

                    var attr3 = type.GetCustomAttributes(typeof(SirenEnumAttribute), false);
                    if (attr3.Length > 0)
                    {
                        SirenCustomEnum sirenEnum = new SirenCustomEnum(type, attr3[0] as SirenEnumAttribute);
                        AllSirenEnums.Add(type, sirenEnum);
                    }
                }
            }

            foreach (var sirenClass in AllSirenClasses)
            {
                sirenClass.Value.Initialize();
            }

            foreach (var sirenClass in AllSirenEnums)
            {
                sirenClass.Value.Initialize();
            }
        }
Exemplo n.º 3
0
 public object DeserializeEnum(SirenCustomEnum sirenEnum)
 {
     return(Reader.OnValue(sirenEnum.Type));
 }