Example #1
0
        ////////////////////////////////////////////

        public Type GetPropertyType(Type Type, String Name)
        {
            if (this.unsensitive)
            {
                Name = Name.ToUpper();
            }

            if (!_cachePropertiesTypes.ContainsKey(Type))
            {
                lock (lck)
                {
                    if (!_cachePropertiesTypes.ContainsKey(Type))
                    {
#if !NET20
                        _cachePropertiesTypes[Type] = Type.GetProperties().ToDictionary(
                            p => this.unsensitive ? p.Name.ToUpper() : p.Name,
                            p => p.PropertyType);
#else
                        _cachePropertiesTypes[Type] = Linq2.ToDictionary(Type.GetProperties(),
                                                                         p => this.unsensitive ? p.Name.ToUpper() : p.Name,
                                                                         p => p.PropertyType);
#endif
                    }
                }
            }
            return(_cachePropertiesTypes.ContainsKey(Type) && _cachePropertiesTypes[Type].ContainsKey(Name) ?
                   _cachePropertiesTypes[Type][Name] :
                   null);
        }
Example #2
0
        public virtual ExpressionGroup Clone()
        {
            ExpressionGroup item = (ExpressionGroup)this.MemberwiseClone();

            if (item.MainExpression != null)
            {
                item.MainExpression = item.MainExpression.Clone();
            }
            if (item.Expressions != null)
            {
#if !NET20
                item.Expressions = item.Expressions.ToDictionary(
                    i => i.Key,
                    i => i.Value.Clone());
#else
                item.Expressions = Linq2.ToDictionary(item.Expressions,
                                                      i => i.Key,
                                                      i => i.Value.Clone());
#endif
            }
            return(item);
        }