Beispiel #1
0
        /// <summary>
        /// Возвращает тип ключа (например, для GUIDGenerator это typeof(Guid))
        /// </summary>
        public static Type KeyType(Type dataobjecttype)
        {
            // сработаем через кэш - выйграем время на вызовах лишних методов
            if (_cacheKeys.ContainsKey(dataobjecttype))
            {
                return(_cacheKeys[dataobjecttype]);
            }

            lock (m_ObjNull)
            {
                if (_cacheKeys.ContainsKey(dataobjecttype))
                {
                    return(_cacheKeys[dataobjecttype]);
                }

                BaseKeyGenerator keyGen  = Generator(dataobjecttype);
                Type             keyType = keyGen.KeyType;
                _cacheKeys.Add(dataobjecttype, keyType);
                return(keyType);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Сгенерировать ключ
        /// </summary>
        public static object GenerateUnique(Type dataobjecttype, object sds)
        {
            BaseKeyGenerator keyGen = Generator(dataobjecttype);

            return(keyGen.GenerateUniqe(dataobjecttype, sds));
        }