//////////////////////////////////////////// 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); }
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); }