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); } }
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);