Example #1
0
        /// <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));
                }
            }
        }
Example #2
0
 protected InheritableProjectParametersDependencies(Project project, string name)
 {
     this.project = project;
     blockName    = name;
     parameters   = project.GetParameters <InheritableProjectParameters <TParams, TDef> >(name);
 }