public static DynamicMethod GetObjectToParamListMethod <TParam>(Type objType) where TParam : DbParameter { return(_ObjectToParamListMethodCache.GetValue(objType.TypeHandle, () => { return EmitUtil.CreateObjectToParamListMethod <TParam>(objType); })); }
public static DynamicMethod GetConvertToListMethod <T>() { return(_ConvertToListMethodCache.GetValue(typeof(T).TypeHandle, () => { return EmitUtil.CreateTableToListMethod <T>(); })); }
public static DynamicMethod GetConvertToEntityMethod <T>() { return(_ConvertDataRowToEntityMethodCache.GetValue(typeof(T).TypeHandle, () => { return EmitUtil.CreateDataRowToEntityMethod <T>(); })); }
public static DynamicMethod GetObjectToParamListMethod <TParam>(Type objType) where TParam : DbParameter { ConcurrentDictionary <RuntimeTypeHandle, DynamicMethod> objectToParamListMethod; _ObjectToParamListMethodCache.TryGetValue(objType.TypeHandle, out objectToParamListMethod); if (objectToParamListMethod != null) { DynamicMethod method; objectToParamListMethod.TryGetValue(typeof(TParam).TypeHandle, out method); if (method == null) { method = EmitUtil.CreateObjectToParamListMethod <TParam>(objType); objectToParamListMethod.TryAdd(typeof(TParam).TypeHandle, method); _ObjectToParamListMethodCache[objType.TypeHandle] = objectToParamListMethod; } return(method); } else { objectToParamListMethod = new ConcurrentDictionary <RuntimeTypeHandle, DynamicMethod>(); DynamicMethod method = EmitUtil.CreateObjectToParamListMethod <TParam>(objType); objectToParamListMethod.TryAdd(typeof(TParam).TypeHandle, method); _ObjectToParamListMethodCache[objType.TypeHandle] = objectToParamListMethod; return(method); } }