/// <summary> /// Returns dynamic field if one exists. /// </summary> /// <param name="field">Field to look up.</param> /// <param name="createCallback">callback function that will be called to create the dynamic field</param> /// <returns>An <see cref="IDynamicField"/> for the given field info.</returns> internal static IDynamicField GetDynamicField(FieldInfo field, CreateFieldCallback createCallback) { lock (fieldCacheLock) { IDynamicField dynamicField; if (!fieldCache.TryGetValue(field, out dynamicField)) { dynamicField = createCallback(field); fieldCache[field] = dynamicField; } return(dynamicField); } }
/// <summary> /// Returns dynamic field if one exists. /// </summary> /// <param name="field">Field to look up.</param> /// <param name="createCallback">callback function that will be called to create the dynamic field</param> /// <returns>An <see cref="IDynamicField"/> for the given field info.</returns> internal static IDynamicField GetDynamicField(FieldInfo field, CreateFieldCallback createCallback) { lock (fieldCache.SyncRoot) { IDynamicField dynamicField = (IDynamicField)fieldCache[field]; if (dynamicField == null) { dynamicField = createCallback(field); fieldCache[field] = dynamicField; } return(dynamicField); } }
/// <summary> /// Returns dynamic field if one exists. /// </summary> /// <param name="field">Field to look up.</param> /// <param name="createCallback">callback function that will be called to create the dynamic field</param> /// <returns>An <see cref="IDynamicField"/> for the given field info.</returns> internal static IDynamicField GetDynamicField(FieldInfo field, CreateFieldCallback createCallback) { lock (fieldCache.SyncRoot) { IDynamicField dynamicField = (IDynamicField)fieldCache[field]; if (dynamicField == null) { dynamicField = createCallback(field); fieldCache[field] = dynamicField; } return dynamicField; } }
/// <summary> /// Returns dynamic field if one exists. /// </summary> /// <param name="field">Field to look up.</param> /// <param name="createCallback">callback function that will be called to create the dynamic field</param> /// <returns>An <see cref="IDynamicField" /> for the given field info.</returns> internal static IDynamicField GetDynamicField(FieldInfo field, CreateFieldCallback createCallback) { lock (_fieldCacheLock) { IDynamicField dynamicField; if (!_fieldCache.TryGetValue(field, out dynamicField)) { dynamicField = createCallback(field); _fieldCache[field] = dynamicField; } return dynamicField; } }