/// <summary> /// Get entity properties /// </summary> /// <param name="entityType"></param> /// <returns></returns> public static PropertyInfo[] GetOrAdd(TypeInfo entityType) { var properties = GlobalPropertiesCache.GetOrAdd(entityType.AsType().TypeHandle, key => (from p in entityType.GetProperties(BindingFlags.Public | BindingFlags.Instance) where !p.IsNotDatabaseField() && p.GetSetMethod(true) != null && p.GetGetMethod(true) != null select p).ToDictionary(p => p.Name)); return(properties.Values.ToArray()); }
public static PropertyInfo[] GetOrAdd(Type entityType) { var properties = GlobalPropertiesCache.GetOrAdd(entityType.TypeHandle, key => (from p in entityType.GetProperties(BindingFlags.Public | BindingFlags.Instance) let attr = p.GetCustomAttribute(typeof(NotDatabaseFieldAttribute)) let attrSetting = p.GetCustomAttribute(typeof(DatabaseFieldAttribute)) where attr == null && !(attrSetting != null && !((DatabaseFieldAttribute)attrSetting).Ignore) && p.GetSetMethod(true) != null && p.GetGetMethod(true) != null select p).ToDictionary(p => p.Name)); return(properties.Values.ToArray()); }
public override CXXPropertyInfo Create(CXXTypeInfo declaringType, System.Reflection.PropertyInfo propertyInfo) { return(PropertyCache.GetOrAdd(propertyInfo, p => new CXXPropertyInfo(this, declaringType, p))); }
/// <summary> /// 获取指定配置键的配置项 /// </summary> /// <param name="key">配置键</param> /// <param name="config">配置的参数</param> /// <returns>配置项</returns> public IProperty <T> GetProperty <T>(string key, PropertyConfig <T> config) { ParameterChecker.NotNullOrWhiteSpace(key, "key"); return((IProperty <T>)PropertyCache.GetOrAdd(key, NewProperty <T>(key, config))); }
public override UnrealPropertyInfo Create(UnrealTypeInfo declaringType, PropertyInfo propertyInfo) { return(PropertyCache.GetOrAdd(propertyInfo, p => new UnrealPropertyInfo(this, declaringType, p))); }