/// <summary> /// Obtains cached property info or creates a new entry, if none is found. /// </summary> private static DynamicPropertyCacheEntry GetOrCreateDynamicProperty(PropertyInfo property) { DynamicPropertyCacheEntry propertyInfo; if (!propertyCache.TryGetValue(property, out propertyInfo)) { propertyInfo = new DynamicPropertyCacheEntry(DynamicReflectionManager.CreatePropertyGetter(property), DynamicReflectionManager.CreatePropertySetter(property)); lock (propertyCache) { propertyCache[property] = propertyInfo; } } return(propertyInfo); }
/// <summary> /// Obtains cached property info or creates a new entry, if none is found. /// </summary> private static DynamicPropertyCacheEntry GetOrCreateDynamicProperty(PropertyInfo property) { DynamicPropertyCacheEntry propertyInfo = (DynamicPropertyCacheEntry)propertyCache[property]; if (propertyInfo == null) { propertyInfo = new DynamicPropertyCacheEntry(DynamicReflectionManager.CreatePropertyGetter(property), DynamicReflectionManager.CreatePropertySetter(property)); lock (propertyCache) { propertyCache[property] = propertyInfo; } } return(propertyInfo); }