/// <summary> /// Obtains cached fieldInfo or creates a new entry, if none is found. /// </summary> private static DynamicFieldCacheEntry GetOrCreateDynamicField(FieldInfo field) { DynamicFieldCacheEntry fieldInfo; if (!fieldCache.TryGetValue(field, out fieldInfo)) { fieldInfo = new DynamicFieldCacheEntry(DynamicReflectionManager.CreateFieldGetter(field), DynamicReflectionManager.CreateFieldSetter(field)); lock (fieldCache) { fieldCache[field] = fieldInfo; } } return(fieldInfo); }
/// <summary> /// Obtains cached fieldInfo or creates a new entry, if none is found. /// </summary> private static DynamicFieldCacheEntry GetOrCreateDynamicField(FieldInfo field) { DynamicFieldCacheEntry fieldInfo = (DynamicFieldCacheEntry)fieldCache[field]; if (fieldInfo == null) { fieldInfo = new DynamicFieldCacheEntry(DynamicReflectionManager.CreateFieldGetter(field), DynamicReflectionManager.CreateFieldSetter(field)); lock (fieldCache) { fieldCache[field] = fieldInfo; } } return(fieldInfo); }