public override void ApplyProperty(IComponent component, PropertySetterInfo propertySetterInfo)
 {
     if (!propertySetter.SetValue(component, propertySetterInfo.PropertyName, propertySetterInfo.Value))
     {
         throw new PropertyNotFoundException("Invalid property assignement!", propertySetterInfo.Line, propertySetterInfo.Source);
     }
 }
        private void ParsePropertiesSetters(ComponentTemplate template, XmlNode node)
        {
            foreach (XmlAttribute attribute in node.Attributes)
            {
                var propertyType = componentTypeResolver.GetPropertyType(template.ComponentType, attribute.Name);
                if (propertyType == null)
                {
                    throw new PropertyNotFoundException($"Invalid property: Property '{attribute.Name}' not found!", 0, "");
                }

                var expression = propertyType == typeof(string) ? Expression.Constant(new StringPropertyValue(attribute.Value))
                                                                : dssParser.ParseExpression(attribute.Value, node.OwnerDocument.Name);
                var value = expressionExecutor.GetValue(expression);
                var propertySetterInfo = new PropertySetterInfo(attribute.Name, value, 0, "");

                template.PropertySetters.Add(propertySetterInfo);
            }
        }
Exemple #3
0
        private void ProcessPropertyInstruction(DssCompilerContext context, Ruleset ruleset, PropertyInstruction propertyInstruction)
        {
            var propertySetterInfo = new PropertySetterInfo(propertyInstruction.Identifier, expressionExecutor.GetValues(propertyInstruction.Value.Values), 0, null);

            ruleset.PropertySetters.Add(propertySetterInfo);
        }
 public abstract void ApplyProperty(IComponent component, PropertySetterInfo propertySetterInfo);