Initialize() public method

public Initialize ( ) : bool
return bool
Esempio n. 1
0
        public static SirenType FindType(Type type)
        {
            if (type.IsGenericType)
            {
                if (type.Name.StartsWith("List"))
                {
                    return new SirenBuildinList(type);
                }
                if (type.Name.StartsWith("Dictionary"))
                {
                    return new SirenBuildinDictionary(type);
                }
            }
            else
            {
                if (type.IsValueType)
                {

                    if (type == typeof(bool))
                    {
                        return Bool;
                    }
                    if (type == typeof(char))
                    {
                        return Int8;
                    }
                    if (type == typeof(short))
                    {
                        return Int16;
                    }
                    if (type == typeof(int))
                    {
                        return Int32;
                    }
                    if (type == typeof(Int64))
                    {
                        return Int64;
                    }
                    if (type == typeof(byte))
                    {
                        return UInt8;
                    }
                    if (type == typeof(ushort))
                    {
                        return UInt16;
                    }
                    if (type == typeof(uint))
                    {
                        return UInt32;
                    }
                    if (type == typeof(UInt64))
                    {
                        return UInt64;
                    }
                    if (type == typeof(float))
                    {
                        return Float;
                    }
                    if (type == typeof(double))
                    {
                        return Double;
                    }

                }
                else
                {
                    if (type == typeof(string))
                    {
                        return String;
                    }
                    if (type == typeof(byte[]))
                    {
                        return Blob;
                    }

                }

            }

            SirenCustomClass sirenClass;
            if (AllSirenClasses.TryGetValue(type, out sirenClass)) return sirenClass;

            if (GenerictSirenClasses.TryGetValue(type, out sirenClass))
            {
                return sirenClass;
            }

            SirenCustomEnum sirenEnum;
            if (AllSirenEnums.TryGetValue(type, out sirenEnum)) return sirenEnum;

            if (type.IsGenericType)
            {
                Type testType = null;
                foreach (var temp in AllSirenClasses)
                {
                    var oldType = temp.Key;
                    if (oldType.IsGenericTypeDefinition)
                    {
                        testType = oldType.MakeGenericType(type.GetGenericArguments());
                        if (testType == type)
                        {

                            var attr2 = type.GetCustomAttributes(typeof(SirenClassAttribute), false);
                            if (attr2.Length <= 0)
                            {
                                return null;
                            }

                            sirenClass = new SirenCustomClass(type, attr2[0] as SirenClassAttribute);
                            sirenClass.Initialize();
                            break;
                        }
                        testType = null;

                    }
                }

                if (testType != null)
                {
                    GenerictSirenClasses.Add(testType, sirenClass);
                }

            }

            return sirenClass;
        }
Esempio n. 2
0
        public static SirenCustomClass FindClass(Type type)
        {
            if (type.IsPrimitive || type == typeof(string) || type == typeof(byte[]))
            {
                return null;
            }

            SirenCustomClass sirenClass;
            if (AllSirenClasses.TryGetValue(type, out sirenClass)) return sirenClass;

            if (GenerictSirenClasses.TryGetValue(type, out sirenClass))
            {
                return sirenClass;
            }

            if (type.IsGenericType)
            {
                Type testType = null;
                foreach (var temp in AllSirenClasses)
                {
                    var oldType = temp.Key;
                    if (oldType.IsGenericTypeDefinition)
                    {
                        testType = oldType.MakeGenericType(type.GetGenericArguments());
                        if (testType == type)
                        {

                            var attr2 = type.GetCustomAttributes(typeof(SirenClassAttribute), false);
                            if (attr2.Length <= 0)
                            {
                                return null;
                            }

                            sirenClass = new SirenCustomClass(type, attr2[0] as SirenClassAttribute);
                            sirenClass.Initialize();
                            break;
                        }
                        testType = null;

                    }
                }

                if (testType != null)
                {
                    GenerictSirenClasses.Add(testType, sirenClass);
                }

            }

            return sirenClass;
        }