private SolidProperty( string name, Type targetType, Type propertyType, SolidPropertyMetadata meta) { this.Name = name; this.ObjectType = targetType; this.PropertyType = propertyType; this.Metadata = meta; }
public static SolidProperty Register( Type objectType, string name, Type propertyType, SolidPropertyMetadata metaData) { var property = new SolidProperty(name, objectType, propertyType, metaData ?? new SolidPropertyMetadata()); var registry = GetRegistryForType(objectType); lock (registry) { if (registry.ContainsKey(name)) { throw new InvalidOperationException($"The property {name} is already registered."); } registry.Add(name, property); } return(property); }
public static SolidProperty Register <TObject, TProperty>(string propertyName, SolidPropertyMetadata metaData) where TObject : SolidObject => Register(typeof(TObject), propertyName, typeof(TProperty), metaData);