/// <summary> /// Constructs the fingerprint by getting the actual property values of an object /// and storing them in a dictionary /// </summary> /// <param name="obj">The object to make fingerprint of</param> public InheritablePropertiesFingerprint(InheritableProjectParameters <TParams, TDef> obj) { Contract.Requires(obj != null); var def = new TDef(); values = new Dictionary <string, Tuple <object, Type> >(); foreach (var propertyDef in def.Properties) { if (obj.IsSpecified(propertyDef.Name)) { var value = obj.GetDynamic(propertyDef.Name, propertyDef.Type); values.Add(propertyDef.Name, Tuple.Create(value, propertyDef.Type)); } } }
protected InheritableProjectParametersDependencies(Project project, string name) { this.project = project; blockName = name; parameters = project.GetParameters <InheritableProjectParameters <TParams, TDef> >(name); }