Esempio n. 1
0
 private SolidProperty(
     string name,
     Type targetType,
     Type propertyType,
     SolidPropertyMetadata meta)
 {
     this.Name         = name;
     this.ObjectType   = targetType;
     this.PropertyType = propertyType;
     this.Metadata     = meta;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public static SolidProperty Register <TObject, TProperty>(string propertyName, SolidPropertyMetadata metaData)
     where TObject : SolidObject
 => Register(typeof(TObject), propertyName, typeof(TProperty), metaData);