Пример #1
0
        internal static object GetArrayEntries(IntPtr a)
        {
            long   safeArraySize = RemoteConfigSettingsHelper.GetSafeArraySize(a);
            bool   flag          = safeArraySize == 0L;
            object result;

            if (flag)
            {
                result = null;
            }
            else
            {
                switch (RemoteConfigSettingsHelper.GetSafeArrayType(a, 0L))
                {
                case RemoteConfigSettingsHelper.Tag.kIntVal:
                case RemoteConfigSettingsHelper.Tag.kInt64Val:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <long>(a, safeArraySize, new Func <IntPtr, long, long>(RemoteConfigSettingsHelper.GetSafeNumberArray));
                    return(result);

                case RemoteConfigSettingsHelper.Tag.kDoubleVal:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <float>(a, safeArraySize, new Func <IntPtr, long, float>(RemoteConfigSettingsHelper.GetSafeArrayFloat));
                    return(result);

                case RemoteConfigSettingsHelper.Tag.kBoolVal:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <bool>(a, safeArraySize, new Func <IntPtr, long, bool>(RemoteConfigSettingsHelper.GetSafeArrayBool));
                    return(result);

                case RemoteConfigSettingsHelper.Tag.kStringVal:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <string>(a, safeArraySize, new Func <IntPtr, long, string>(RemoteConfigSettingsHelper.GetSafeArrayStringValue));
                    return(result);

                case RemoteConfigSettingsHelper.Tag.kArrayVal:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <object>(a, safeArraySize, new Func <IntPtr, long, object>(RemoteConfigSettingsHelper.GetArrayArrayEntries));
                    return(result);

                case RemoteConfigSettingsHelper.Tag.kMapVal:
                    result = RemoteConfigSettingsHelper.GetArrayEntriesType <IDictionary <string, object> >(a, safeArraySize, new Func <IntPtr, long, IDictionary <string, object> >(RemoteConfigSettingsHelper.GetArrayMapEntries));
                    return(result);
                }
                result = null;
            }
            return(result);
        }